il.append(methodGen.loadHandler()); il.append(DUP);   _name.translate(classGen, methodGen);
if (!_isLiteral) {  LocalVariableGen nameValue = methodGen.addLocalVariable2("nameValue", Util.getJCRefType(STRING_SIG), il.getEnd());   _name.translate(classGen, methodGen); il.append(new ASTORE(nameValue.getIndex())); il.append(new ALOAD(nameValue.getIndex()));   final int check = cpg.addMethodref(BASIS_LIBRARY_CLASS, "checkNCName", "(" +STRING_SIG +")V"); il.append(new INVOKESTATIC(check));   il.append(methodGen.loadHandler()); il.append(DUP);   il.append(new ALOAD(nameValue.getIndex())); } else {  il.append(methodGen.loadHandler()); il.append(DUP);   _name.translate(classGen, methodGen);  }
    public void translate(ClassGenerator classGen, MethodGenerator methodGen) {	final ConstantPoolGen cpg = classGen.getConstantPool();	final InstructionList il = methodGen.getInstructionList();	// Save the current handler base on the stack	il.append(methodGen.loadHandler());	il.append(DUP);		// first arg to "attributes" call		// push attribute name	_name.translate(classGen, methodGen);// 2nd arg	il.append(classGen.loadTranslet());	il.append(new GETFIELD(cpg.addFieldref(TRANSLET_CLASS,					       "stringValueHandler",					       STRING_VALUE_HANDLER_SIG)));	il.append(DUP);	il.append(methodGen.storeHandler());	// translate contents with substituted handler	translateContents(classGen, methodGen);	// get String out of the handler	il.append(new INVOKEVIRTUAL(cpg.addMethodref(STRING_VALUE_HANDLER,						     "getValueOfPI",						     "()" + STRING_SIG)));	// call "processingInstruction"	final int processingInstruction =	    cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE,				      "processingInstruction", 				      "(" + STRING_SIG + STRING_SIG + ")V");	il.append(new INVOKEINTERFACE(processingInstruction, 3));	// Restore old handler base from stack	il.append(methodGen.storeHandler());    }