}
return ml;
}
InsnList buildInstructions(IList iList) {
InsnList il = new InsnList();
for (IValue v : iList) {
if (((IConstructor)v).getName().equals("fieldRef")) {
il.add(new FieldInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IString)((IConstructor)v).get(1)).getValue(),
((IString)((IConstructor)v).get(2)).getValue(),
((IString)((IConstructor)v).get(3)).getValue()));
} else if (((IConstructor)v).getName().equals("increment")) {
il.add(new IincInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IInteger)((IConstructor)v).get(1)).intValue()));
} else if (((IConstructor)v).getName().equals("instruction")) {
il.add(new InsnNode(((IInteger)((IConstructor)v).get(0)).intValue()));
} else if (((IConstructor)v).getName().equals("integer")) {
il.add(new IntInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IInteger)((IConstructor)v).get(1)).intValue()));
} else if (((IConstructor)v).getName().equals("jump")) {
il.add(new JumpInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
getLabel(((IInteger)((IConstructor)v).get(1)).intValue())));
} else if (((IConstructor)v).getName().equals("label")) {
il.add(getLabel(((IInteger)((IConstructor)v).get(0)).intValue()));
} else if (((IConstructor)v).getName().equals("lineNumber")) {
il.add(new LineNumberNode(((IInteger)((IConstructor)v).get(0)).intValue(),
getLabel(((IInteger)((IConstructor)v).get(1)).intValue())));
} else if (((IConstructor)v).getName().equals("localVariable")) {
il.add(new VarInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IInteger)((IConstructor)v).get(1)).intValue()));
} else if (((IConstructor)v).getName().equals("loadConstantString")) {
il.add(new LdcInsnNode(((IString)((IConstructor)v).get(0)).getValue()));
} else if (((IConstructor)v).getName().equals("loadConstantInteger")) {
il.add(new LdcInsnNode(((IInteger)((IConstructor)v).get(0)).intValue()));
} else if (((IConstructor)v).getName().equals("loadConstantLong")) {
il.add(new LdcInsnNode(((IInteger)((IConstructor)v).get(0)).longValue()));
} else if (((IConstructor)v).getName().equals("loadConstantFloat")) {
il.add(new LdcInsnNode(((IReal)((IConstructor)v).get(0)).floatValue()));
} else if (((IConstructor)v).getName().equals("loadConstantDouble")) {
il.add(new LdcInsnNode(((IReal)((IConstructor)v).get(0)).doubleValue()));
} else if (((IConstructor)v).getName().equals("lookupSwitch")) {
IList kl = (IList)((IConstructor)v).get(1);
int ka[] = new int[kl.length()];
for (int i = 0; i < kl.length(); i++) {
ka[i] = ((IInteger)kl.get(i)).intValue();
}
IList ll = (IList)((IConstructor)v).get(2);
LabelNode la[] = new LabelNode[ll.length()];
for (int i = 0; i < ll.length(); i++) {
la[i] = getLabel(((IInteger)ll.get(i)).intValue());
}
il.add(new LookupSwitchInsnNode(getLabel(((IInteger)((IConstructor)v).get(0)).intValue()),
ka,
la));
} else if (((IConstructor)v).getName().equals("method")) {
il.add(new MethodInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IString)((IConstructor)v).get(1)).getValue(),
((IString)((IConstructor)v).get(2)).getValue(),
((IString)((IConstructor)v).get(3)).getValue()));
} else if (((IConstructor)v).getName().equals("multiANewArray")) {
il.add(new MultiANewArrayInsnNode(((IString)((IConstructor)v).get(0)).getValue(),
((IInteger)((IConstructor)v).get(1)).intValue()));
} else if (((IConstructor)v).getName().equals("tableSwitch")) {
IList ll = (IList)((IConstructor)v).get(3);
LabelNode la[] = new LabelNode[ll.length()];
for (int i = 0; i < ll.length(); i++) {
la[i] = getLabel(((IInteger)ll.get(i)).intValue());
}
il.add(new TableSwitchInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IInteger)((IConstructor)v).get(1)).intValue(),
getLabel(((IInteger)((IConstructor)v).get(2)).intValue()),
la));
} else if (((IConstructor)v).getName().equals("type")) {
il.add(new TypeInsnNode(((IInteger)((IConstructor)v).get(0)).intValue(),
((IString)((IConstructor)v).get(1)).getValue()));
}
}
return il;
}