Program: 87073
Project: 87073
Buggy source:
@Override public void visitEnd(){
  if (!clinitFound) {
    MethodVisitor mv=cv.visitMethod(ACC_STATIC,"String_Node_Str","String_Node_Str",null,null);
    mv.visitCode();
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(PUTSTATIC,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitInsn(RETURN);
    mv.visitMaxs(2,0);
    mv.visitEnd();
  }
  if (isMessage) {
    MethodVisitor mv=cv.visitMethod(ACC_PUBLIC,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitInsn(ACONST_NULL);
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l0=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l0);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    mv.visitInsn(ICONST_0);
    mv.visitVarInsn(ISTORE,5);
    Label l1=new Label();
    mv.visitLabel(l1);
    mv.visitFrame(Opcodes.F_APPEND,3,new Object[]{"String_Node_Str","String_Node_Str",Opcodes.INTEGER},0,null);
    mv.visitVarInsn(ILOAD,5);
    mv.visitVarInsn(ALOAD,4);
    mv.visitInsn(ARRAYLENGTH);
    Label l2=new Label();
    mv.visitJumpInsn(IF_ICMPGE,l2);
    mv.visitVarInsn(ALOAD,3);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,4);
    mv.visitVarInsn(ILOAD,5);
    mv.visitInsn(AALOAD);
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitIincInsn(5,1);
    mv.visitJumpInsn(GOTO,l1);
    mv.visitLabel(l2);
    mv.visitFrame(Opcodes.F_CHOP,2,null,0,null);
    Label l3=new Label();
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l0);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l4=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l4);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l4);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l5=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l5);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l6=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l6);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitJumpInsn(IF_ACMPNE,l3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l5);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l7=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l7);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l8=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l8);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l8);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l9=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l9);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l9);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l10=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l10);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l10);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitJumpInsn(IF_ACMPNE,l3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l7);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l11=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l11);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,5);
    Label l12=new Label();
    mv.visitLabel(l12);
    mv.visitFrame(Opcodes.F_APPEND,2,new Object[]{"String_Node_Str","String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l13=new Label();
    mv.visitJumpInsn(IFEQ,l13);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ASTORE,7);
    mv.visitVarInsn(ALOAD,3);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,6);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,7);
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l12);
    mv.visitLabel(l13);
    mv.visitFrame(Opcodes.F_CHOP,2,null,0,null);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l11);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l14=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l14);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l15=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l15);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l15);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitInsn(ICONST_1);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitInsn(ICONST_0);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitInsn(AASTORE);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitInsn(ICONST_1);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitInsn(ICONST_0);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(AASTORE);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l14);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(ATHROW);
    mv.visitLabel(l3);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,3);
    mv.visitInsn(ARETURN);
    mv.visitMaxs(6,8);
    mv.visitEnd();
    mv=cv.visitMethod(ACC_PRIVATE,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    l0=new Label();
    mv.visitLabel(l0);
    mv.visitFrame(Opcodes.F_APPEND,1,new Object[]{"String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    l1=new Label();
    mv.visitJumpInsn(IFEQ,l1);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,5);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l2=new Label();
    mv.visitJumpInsn(IFEQ,l2);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,6);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    l3=new Label();
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l2);
    mv.visitFrame(Opcodes.F_APPEND,1,new Object[]{"String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l4=new Label();
    mv.visitJumpInsn(IFEQ,l4);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,6);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l4);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l5=new Label();
    mv.visitJumpInsn(IFEQ,l5);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l5);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l6=new Label();
    mv.visitJumpInsn(IFEQ,l6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l6);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l7=new Label();
    mv.visitJumpInsn(IFEQ,l7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l7);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l8=new Label();
    mv.visitJumpInsn(IFEQ,l8);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l8);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l9=new Label();
    mv.visitJumpInsn(IFEQ,l9);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l9);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l10=new Label();
    mv.visitJumpInsn(IFEQ,l10);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l10);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l11=new Label();
    mv.visitJumpInsn(IFEQ,l11);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l11);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l12=new Label();
    mv.visitJumpInsn(IFEQ,l12);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l12);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,3);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,5);
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitLabel(l3);
    mv.visitFrame(Opcodes.F_CHOP,1,null,0,null);
    mv.visitJumpInsn(GOTO,l0);
    mv.visitLabel(l1);
    mv.visitFrame(Opcodes.F_CHOP,1,null,0,null);
    mv.visitInsn(RETURN);
    mv.visitMaxs(4,7);
    mv.visitEnd();
    mv=cv.visitMethod(ACC_PRIVATE,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    l0=new Label();
    mv.visitLabel(l0);
    mv.visitFrame(Opcodes.F_APPEND,1,new Object[]{"String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    l1=new Label();
    mv.visitJumpInsn(IFEQ,l1);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,5);
    mv.visitVarInsn(ALOAD,2);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l2=new Label();
    mv.visitJumpInsn(IFEQ,l2);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,7);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,7);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    l3=new Label();
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l2);
    mv.visitFrame(Opcodes.F_APPEND,2,new Object[]{"String_Node_Str","String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l4=new Label();
    mv.visitJumpInsn(IFEQ,l4);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,7);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,7);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l4);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l5=new Label();
    mv.visitJumpInsn(IFEQ,l5);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l5);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l6=new Label();
    mv.visitJumpInsn(IFEQ,l6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l6);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l7=new Label();
    mv.visitJumpInsn(IFEQ,l7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l7);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l8=new Label();
    mv.visitJumpInsn(IFEQ,l8);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l8);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l9=new Label();
    mv.visitJumpInsn(IFEQ,l9);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l9);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l10=new Label();
    mv.visitJumpInsn(IFEQ,l10);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l10);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l11=new Label();
    mv.visitJumpInsn(IFEQ,l11);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l11);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l12=new Label();
    mv.visitJumpInsn(IFEQ,l12);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l12);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,3);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,6);
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitLabel(l3);
    mv.visitFrame(Opcodes.F_CHOP,2,null,0,null);
    mv.visitJumpInsn(GOTO,l0);
    mv.visitLabel(l1);
    mv.visitFrame(Opcodes.F_CHOP,1,null,0,null);
    mv.visitInsn(RETURN);
    mv.visitMaxs(5,8);
    mv.visitEnd();
    mv=cv.visitMethod(ACC_PUBLIC,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,1);
    mv.visitFieldInsn(GETSTATIC,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,2);
    for (    Tuple tuple : fields) {
      String sig;
switch (tuple.getType()) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
        mv.visitVarInsn(ALOAD,2);
      mv.visitVarInsn(ALOAD,0);
    mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
  mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType() + "String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
switch (sig) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
default :
mv.visitTypeInsn(NEW,"String_Node_Str");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,4);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,4);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,4);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
}
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
switch (sig) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
default :
mv.visitTypeInsn(NEW,"String_Node_Str");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,6);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,6);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,6);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
}
break;
default :
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEVIRTUAL,tuple.getType(),"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,3);
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,3);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
}
}
mv.visitVarInsn(ALOAD,1);
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(ARETURN);
mv.visitMaxs(4,8);
mv.visitEnd();
mv=cv.visitMethod(ACC_PUBLIC,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
mv.visitCode();
mv.visitFieldInsn(GETSTATIC,currentClass,"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ALOAD,1);
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,2);
for (Tuple tuple : fields) {
String sig;
switch (tuple.getType()) {
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitLdcInsn(Type.getType(tuple.getType()));
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
break;
default :
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType(tuple.getType()));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,tuple.getType().substring(1,tuple.getType().length() - 1));
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
}
}
mv.visitInsn(RETURN);
mv.visitMaxs(4,3);
mv.visitEnd();
}
cv.visitEnd();
}

Fixed version (ground truth):
@Override public void visitEnd(){
  if (isMessage && !clinitFound) {
    if (!msgPackDefined) {
      FieldVisitor fv=cv.visitField(ACC_PRIVATE + ACC_FINAL + ACC_STATIC,"String_Node_Str","String_Node_Str",null,null);
      fv.visitEnd();
      msgPackDefined=true;
    }
    MethodVisitor mv=cv.visitMethod(ACC_STATIC,"String_Node_Str","String_Node_Str",null,null);
    mv.visitCode();
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(PUTSTATIC,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitInsn(RETURN);
    mv.visitMaxs(2,0);
    mv.visitEnd();
  }
  if (isMessage) {
    MethodVisitor mv=cv.visitMethod(ACC_PUBLIC,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitInsn(ACONST_NULL);
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l0=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l0);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    mv.visitInsn(ICONST_0);
    mv.visitVarInsn(ISTORE,5);
    Label l1=new Label();
    mv.visitLabel(l1);
    mv.visitFrame(Opcodes.F_APPEND,3,new Object[]{"String_Node_Str","String_Node_Str",Opcodes.INTEGER},0,null);
    mv.visitVarInsn(ILOAD,5);
    mv.visitVarInsn(ALOAD,4);
    mv.visitInsn(ARRAYLENGTH);
    Label l2=new Label();
    mv.visitJumpInsn(IF_ICMPGE,l2);
    mv.visitVarInsn(ALOAD,3);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,4);
    mv.visitVarInsn(ILOAD,5);
    mv.visitInsn(AALOAD);
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitIincInsn(5,1);
    mv.visitJumpInsn(GOTO,l1);
    mv.visitLabel(l2);
    mv.visitFrame(Opcodes.F_CHOP,2,null,0,null);
    Label l3=new Label();
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l0);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l4=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l4);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l4);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l5=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l5);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l6=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l6);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitJumpInsn(IF_ACMPNE,l3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l5);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l7=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l7);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l8=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l8);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l8);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l9=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l9);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l9);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l10=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l10);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l10);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitJumpInsn(IF_ACMPNE,l3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKESTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l7);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l11=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l11);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,5);
    Label l12=new Label();
    mv.visitLabel(l12);
    mv.visitFrame(Opcodes.F_APPEND,2,new Object[]{"String_Node_Str","String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l13=new Label();
    mv.visitJumpInsn(IFEQ,l13);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ASTORE,7);
    mv.visitVarInsn(ALOAD,3);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,6);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,7);
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l12);
    mv.visitLabel(l13);
    mv.visitFrame(Opcodes.F_CHOP,2,null,0,null);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l11);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitFieldInsn(GETSTATIC,"String_Node_Str","String_Node_Str","String_Node_Str");
    Label l14=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l14);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    Label l15=new Label();
    mv.visitJumpInsn(IF_ACMPNE,l15);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l15);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,3);
    mv.visitVarInsn(ALOAD,2);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitInsn(ICONST_1);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitInsn(ICONST_0);
    mv.visitLdcInsn(Type.getType("String_Node_Str"));
    mv.visitInsn(AASTORE);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitInsn(ICONST_1);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitInsn(ICONST_0);
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(AASTORE);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l14);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(ATHROW);
    mv.visitLabel(l3);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,3);
    mv.visitInsn(ARETURN);
    mv.visitMaxs(6,8);
    mv.visitEnd();
    mv=cv.visitMethod(ACC_PRIVATE,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    l0=new Label();
    mv.visitLabel(l0);
    mv.visitFrame(Opcodes.F_APPEND,1,new Object[]{"String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    l1=new Label();
    mv.visitJumpInsn(IFEQ,l1);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,5);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l2=new Label();
    mv.visitJumpInsn(IFEQ,l2);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,6);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    l3=new Label();
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l2);
    mv.visitFrame(Opcodes.F_APPEND,1,new Object[]{"String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l4=new Label();
    mv.visitJumpInsn(IFEQ,l4);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,6);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l4);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l5=new Label();
    mv.visitJumpInsn(IFEQ,l5);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l5);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l6=new Label();
    mv.visitJumpInsn(IFEQ,l6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l6);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l7=new Label();
    mv.visitJumpInsn(IFEQ,l7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l7);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l8=new Label();
    mv.visitJumpInsn(IFEQ,l8);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l8);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l9=new Label();
    mv.visitJumpInsn(IFEQ,l9);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l9);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l10=new Label();
    mv.visitJumpInsn(IFEQ,l10);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l10);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l11=new Label();
    mv.visitJumpInsn(IFEQ,l11);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l11);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,5);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l12=new Label();
    mv.visitJumpInsn(IFEQ,l12);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l12);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,3);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,5);
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitLabel(l3);
    mv.visitFrame(Opcodes.F_CHOP,1,null,0,null);
    mv.visitJumpInsn(GOTO,l0);
    mv.visitLabel(l1);
    mv.visitFrame(Opcodes.F_CHOP,1,null,0,null);
    mv.visitInsn(RETURN);
    mv.visitMaxs(4,7);
    mv.visitEnd();
    mv=cv.visitMethod(ACC_PRIVATE,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitVarInsn(ALOAD,2);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,4);
    l0=new Label();
    mv.visitLabel(l0);
    mv.visitFrame(Opcodes.F_APPEND,1,new Object[]{"String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    l1=new Label();
    mv.visitJumpInsn(IFEQ,l1);
    mv.visitVarInsn(ALOAD,4);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,5);
    mv.visitVarInsn(ALOAD,2);
    mv.visitVarInsn(ALOAD,5);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,6);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l2=new Label();
    mv.visitJumpInsn(IFEQ,l2);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,7);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,7);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    l3=new Label();
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l2);
    mv.visitFrame(Opcodes.F_APPEND,2,new Object[]{"String_Node_Str","String_Node_Str"},0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l4=new Label();
    mv.visitJumpInsn(IFEQ,l4);
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,7);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitVarInsn(ALOAD,0);
    mv.visitVarInsn(ALOAD,7);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitVarInsn(ALOAD,3);
    mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l4);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l5=new Label();
    mv.visitJumpInsn(IFEQ,l5);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l5);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l6=new Label();
    mv.visitJumpInsn(IFEQ,l6);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l6);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l7=new Label();
    mv.visitJumpInsn(IFEQ,l7);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l7);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l8=new Label();
    mv.visitJumpInsn(IFEQ,l8);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l8);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l9=new Label();
    mv.visitJumpInsn(IFEQ,l9);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l9);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l10=new Label();
    mv.visitJumpInsn(IFEQ,l10);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l10);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l11=new Label();
    mv.visitJumpInsn(IFEQ,l11);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l11);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,6);
    mv.visitTypeInsn(INSTANCEOF,"String_Node_Str");
    l12=new Label();
    mv.visitJumpInsn(IFEQ,l12);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,6);
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitJumpInsn(GOTO,l3);
    mv.visitLabel(l12);
    mv.visitFrame(Opcodes.F_SAME,0,null,0,null);
    mv.visitVarInsn(ALOAD,1);
    mv.visitVarInsn(ALOAD,5);
    mv.visitVarInsn(ALOAD,3);
    mv.visitLdcInsn("String_Node_Str");
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,6);
    mv.visitInsn(ICONST_0);
    mv.visitTypeInsn(ANEWARRAY,"String_Node_Str");
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
    mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitInsn(POP);
    mv.visitLabel(l3);
    mv.visitFrame(Opcodes.F_CHOP,2,null,0,null);
    mv.visitJumpInsn(GOTO,l0);
    mv.visitLabel(l1);
    mv.visitFrame(Opcodes.F_CHOP,1,null,0,null);
    mv.visitInsn(RETURN);
    mv.visitMaxs(5,8);
    mv.visitEnd();
    mv=cv.visitMethod(ACC_PUBLIC,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    mv.visitCode();
    mv.visitTypeInsn(NEW,"String_Node_Str");
    mv.visitInsn(DUP);
    mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,1);
    mv.visitFieldInsn(GETSTATIC,currentClass,"String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ALOAD,1);
    mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
    mv.visitVarInsn(ASTORE,2);
    for (    Tuple tuple : fields) {
      String sig;
switch (tuple.getType()) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
        mv.visitVarInsn(ALOAD,2);
      mv.visitVarInsn(ALOAD,0);
    mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
  mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType() + "String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
switch (sig) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
default :
mv.visitTypeInsn(NEW,"String_Node_Str");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,4);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,4);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,4);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
}
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
switch (sig) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
default :
mv.visitTypeInsn(NEW,"String_Node_Str");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,6);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,6);
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKESPECIAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,6);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
}
break;
default :
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitMethodInsn(INVOKEVIRTUAL,tuple.getType(),"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,3);
mv.visitVarInsn(ALOAD,2);
mv.visitVarInsn(ALOAD,3);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
}
}
mv.visitVarInsn(ALOAD,1);
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(ARETURN);
mv.visitMaxs(4,8);
mv.visitEnd();
mv=cv.visitMethod(ACC_PUBLIC,"String_Node_Str","String_Node_Str",null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
mv.visitCode();
mv.visitFieldInsn(GETSTATIC,currentClass,"String_Node_Str","String_Node_Str");
mv.visitVarInsn(ALOAD,1);
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitVarInsn(ASTORE,2);
for (Tuple tuple : fields) {
String sig;
switch (tuple.getType()) {
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEVIRTUAL,"String_Node_Str","String_Node_Str","String_Node_Str" + tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType("String_Node_Str"));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitLdcInsn(Type.getType(tuple.getType()));
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,tuple.getType());
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitInsn(POP);
break;
case "String_Node_Str":
sig=getType(tuple.getSignature());
mv.visitVarInsn(ALOAD,0);
mv.visitFieldInsn(GETFIELD,currentClass,tuple.getName(),tuple.getType());
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType(sig));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,"String_Node_Str");
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
break;
default :
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,0);
mv.visitVarInsn(ALOAD,2);
mv.visitMethodInsn(INVOKEINTERFACE,"String_Node_Str","String_Node_Str","String_Node_Str");
mv.visitLdcInsn(Type.getType(tuple.getType()));
mv.visitMethodInsn(INVOKEVIRTUAL,currentClass,"String_Node_Str","String_Node_Str");
mv.visitTypeInsn(CHECKCAST,tuple.getType().substring(1,tuple.getType().length() - 1));
mv.visitFieldInsn(PUTFIELD,currentClass,tuple.getName(),tuple.getType());
break;
}
}
mv.visitInsn(RETURN);
mv.visitMaxs(4,3);
mv.visitEnd();
}
cv.visitEnd();
}