void (MethodVisitor mv, Label[] labels, Map<Label, ReportingPlace> label2Place) { Label afterSwitch = new Label(); mv.visitVarInsn(ILOAD, 0); mv.visitTableSwitchInsn(0, labels.length - 1 , labels[0], labels); for (Map.Entry<Label, ReportingPlace> entry : label2Place.entrySet()) { mv.visitLabel(entry.getKey()); generateCaseBody(getSwitchedValue(entry.getValue())); mv.visitJumpInsn(GOTO, afterSwitch); } mv.visitLabel(afterSwitch); }