}
@Override
public void visitMethod(Method obj) {
MethodGen methodGenerator = new MethodGen(obj, this.javaClass.getClassName(), this.constantPool);
LOG.debug("Processing MethodInvocation: "+methodGenerator.toString());
IntermediateContext intermediateContext = new IntermediateContext(this.javaClass, methodGenerator);
InstructionList instructions = methodGenerator.getInstructionList();
instructions.setPositions(true);
InstructionGraphFactory igf = new InstructionGraphFactory(instructions, methodGenerator.getExceptionHandlers());
InstructionGraphContext igc = igf.process();
List<InstructionGraphEnhancer> iges = new ArrayList<InstructionGraphEnhancer>();
iges.add(new InstructionGraphWriter(igc, "before.dot"));
iges.add(new SplitInstructionEnhancer(igc));
iges.add(new ConditionEdgeEnhancer(igc));
iges.add(new ExceptionEdgeEnhancer(igc, methodGenerator.getExceptionHandlers()));
iges.add(new InstructionToIntermediateEnhancer(igc, intermediateContext));
iges.add(new BackEdgeEnhancer(igc));
iges.add(new LoopHeader(igc));
iges.add(new ContinuousLoop(igc));