org.aspectj.apache.bcel.generic
Class SwitchBuilder

java.lang.Object
  extended by org.aspectj.apache.bcel.generic.SwitchBuilder

public final class SwitchBuilder
extends java.lang.Object

SWITCH - Branch depending on int value, generates either LOOKUPSWITCH or TABLESWITCH instruction, depending on whether the match values (int[]) can be sorted with no gaps between the numbers.


Constructor Summary
SwitchBuilder(int[] match, InstructionHandle[] targets, InstructionHandle target)
           
SwitchBuilder(int[] match, InstructionHandle[] targets, InstructionHandle target, int max_gap)
          Template for switch() constructs.
 
Method Summary
 InstructionSelect getInstruction()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SwitchBuilder

public SwitchBuilder(int[] match,
                     InstructionHandle[] targets,
                     InstructionHandle target,
                     int max_gap)
Template for switch() constructs. If the match array can be sorted in ascending order with gaps no larger than max_gap between the numbers, a TABLESWITCH instruction is generated, and a LOOKUPSWITCH otherwise. The former may be more efficient, but needs more space. Note, that the key array always will be sorted, though we leave the original arrays unaltered.

Parameters:
match - array of match values (case 2: ... case 7: ..., etc.)
targets - the instructions to be branched to for each case
target - the default target
max_gap - maximum gap that may between case branches

SwitchBuilder

public SwitchBuilder(int[] match,
                     InstructionHandle[] targets,
                     InstructionHandle target)
Method Detail

getInstruction

public final InstructionSelect getInstruction()