1 30 31 package oracle.toplink.libraries.asm.tree; 32 33 import oracle.toplink.libraries.asm.Label; 34 import oracle.toplink.libraries.asm.Constants; 35 import oracle.toplink.libraries.asm.CodeVisitor; 36 37 import java.util.List ; 38 import java.util.ArrayList ; 39 import java.util.Arrays ; 40 41 46 47 public class LookupSwitchInsnNode extends AbstractInsnNode { 48 49 52 53 public Label dflt; 54 55 59 60 public final List keys; 61 62 66 67 public final List labels; 68 69 77 78 public LookupSwitchInsnNode ( 79 final Label dflt, 80 final int[] keys, 81 final Label[] labels) 82 { 83 super(Constants.LOOKUPSWITCH); 84 this.dflt = dflt; 85 this.keys = new ArrayList (); 86 this.labels = new ArrayList (); 87 if (keys != null) { 88 for (int i = 0; i < keys.length; ++i) { 89 this.keys.add(new Integer (keys[i])); 90 } 91 } 92 if (labels != null) { 93 this.labels.addAll(Arrays.asList(labels)); 94 } 95 } 96 97 public void accept (final CodeVisitor cv) { 98 int[] keys = new int[this.keys.size()]; 99 for (int i = 0; i < keys.length; ++i) { 100 keys[i] = ((Integer )this.keys.get(i)).intValue(); 101 } 102 Label[] labels = new Label[this.labels.size()]; 103 this.labels.toArray(labels); 104 cv.visitLookupSwitchInsn(dflt, keys, labels); 105 } 106 } 107 | Popular Tags |