jist.runtime
Interface ClassTraversal.Visitor

All Known Implementing Classes:
ClassTraversal.Empty, Rewriter.ModifyTypeTraversal, RewriterTraversalAddAccessorMethods, RewriterTraversalAddEntityMethodStubs, RewriterTraversalAddSelfEntityRef, RewriterTraversalContinuableMethods, RewriterTraversalImplementEntityInterface, RewriterTraversalImplementTimelessInterface, RewriterTraversalModifyEntityCreation, RewriterTraversalModifyEntityInvocation, RewriterTraversalModifyEntityReferences, RewriterTraversalRemoveFieldAccess, RewriterTraversalRemoveNop, RewriterTraversalTranslateAPICalls, RewriterTraversalVerifyAll, RewriterTraversalVerifyEntity
Enclosing class:
ClassTraversal

public static interface ClassTraversal.Visitor

ClassTraversal upcall interface. Specifies upcall methods for processing a class, its fields and methods, and the individual method instructions.

Since:
JIST1.0
Author:
Rimon Barr <barr+jist@cs.cornell.edu>

Method Summary
 org.apache.bcel.generic.ClassGen doClass(org.apache.bcel.generic.ClassGen cg)
          Upcall to process class before field and method processing.
 org.apache.bcel.generic.ClassGen doClassPost(org.apache.bcel.generic.ClassGen cg)
          Upcall to process class after field and method processing.
 org.apache.bcel.generic.FieldGen doField(org.apache.bcel.generic.ClassGen cg, org.apache.bcel.generic.FieldGen fg)
          Upcall to process field.
 void doInstruction(org.apache.bcel.generic.ClassGen cg, org.apache.bcel.generic.MethodGen mg, org.apache.bcel.generic.InstructionHandle ih, org.apache.bcel.generic.Instruction i)
          Upcall to process instruction.
 org.apache.bcel.generic.MethodGen doMethod(org.apache.bcel.generic.ClassGen cg, org.apache.bcel.generic.MethodGen mg)
          Upcall to process method before instruction processing.
 org.apache.bcel.generic.MethodGen doMethodPost(org.apache.bcel.generic.ClassGen cg, org.apache.bcel.generic.MethodGen mg)
          Upcall to process method after instruction processing.
 

Method Detail

doClass

org.apache.bcel.generic.ClassGen doClass(org.apache.bcel.generic.ClassGen cg)
                                         throws java.lang.ClassNotFoundException
Upcall to process class before field and method processing.

Parameters:
cg - BCEL class generator object to process
Returns:
processed BCEL class generator object
Throws:
java.lang.ClassNotFoundException

doClassPost

org.apache.bcel.generic.ClassGen doClassPost(org.apache.bcel.generic.ClassGen cg)
                                             throws java.lang.ClassNotFoundException
Upcall to process class after field and method processing.

Parameters:
cg - BCEL class generator object to process
Returns:
processed BCEL class generator object
Throws:
java.lang.ClassNotFoundException

doField

org.apache.bcel.generic.FieldGen doField(org.apache.bcel.generic.ClassGen cg,
                                         org.apache.bcel.generic.FieldGen fg)
                                         throws java.lang.ClassNotFoundException
Upcall to process field.

Parameters:
cg - BCEL class generator object
fg - BCEL field generator object to process
Returns:
processed BCEL field generator object
Throws:
java.lang.ClassNotFoundException

doMethod

org.apache.bcel.generic.MethodGen doMethod(org.apache.bcel.generic.ClassGen cg,
                                           org.apache.bcel.generic.MethodGen mg)
                                           throws java.lang.ClassNotFoundException
Upcall to process method before instruction processing.

Parameters:
cg - BCEL class generator object
mg - BCEL method generator object to process
Returns:
processed BCEL method generator object
Throws:
java.lang.ClassNotFoundException

doMethodPost

org.apache.bcel.generic.MethodGen doMethodPost(org.apache.bcel.generic.ClassGen cg,
                                               org.apache.bcel.generic.MethodGen mg)
                                               throws java.lang.ClassNotFoundException
Upcall to process method after instruction processing.

Parameters:
cg - BCEL field generator object
mg - BCEL method generator object to process
Returns:
processed BCEL method generator object
Throws:
java.lang.ClassNotFoundException

doInstruction

void doInstruction(org.apache.bcel.generic.ClassGen cg,
                   org.apache.bcel.generic.MethodGen mg,
                   org.apache.bcel.generic.InstructionHandle ih,
                   org.apache.bcel.generic.Instruction i)
                   throws java.lang.ClassNotFoundException
Upcall to process instruction. Note that instructions can be inserted and deleted directly using the BCEL API, and therefore this method returns void.

Parameters:
cg - BCEL class generator object
mg - BCEL method generator object
ih - BCEL instruction handle object to process
i - BCEL instruction object to process
Throws:
java.lang.ClassNotFoundException