String signature = _type.toSignature();
    public void translate(ClassGenerator classGen, MethodGenerator methodGen) {	final ConstantPoolGen cpg = classGen.getConstantPool();	final InstructionList il = methodGen.getInstructionList();	if (_compiled) return;	_compiled = true;	// Make name acceptable for use as field name in class	// TODO: convert to escape sequence like $dot$ and $dash$	String name = _name.getLocalPart(); // TODO: namespace ?	name = name.replace('.', '_');	name = name.replace('-', '_');	if (isLocal()) {	    il.append(classGen.loadTranslet());	    il.append(new PUSH(cpg, name));	    translateValue(classGen, methodGen);	    il.append(new PUSH(cpg, true));	    // Call addParameter() from this class	    il.append(new INVOKEVIRTUAL(cpg.addMethodref(TRANSLET_CLASS,							 ADD_PARAMETER,							 ADD_PARAMETER_SIG)));	    if (_refs.isEmpty()) { // nobody uses the value		il.append(_type.POP());		_local = null;	    }	    else {		// normal case		_local = methodGen.addLocalVariable2(name,						     _type.toJCType(),						     il.getEnd());		// Cache the result of addParameter() in a local variable		il.append(_type.STORE(_local.getIndex()));	    }	}	else {	    String signature = _type.toSignature();	    classGen.addField(new Field(ACC_PUBLIC, cpg.addUtf8(name),					cpg.addUtf8(signature),					null, cpg.getConstantPool()));	    il.append(classGen.loadTranslet());	    il.append(DUP);	    il.append(new PUSH(cpg, name));	    translateValue(classGen, methodGen);	    il.append(new PUSH(cpg, true));	    // Call addParameter() from this class	    il.append(new INVOKEVIRTUAL(cpg.addMethodref(TRANSLET_CLASS,							 ADD_PARAMETER,							 ADD_PARAMETER_SIG)));	    // Cache the result of addParameter() in a field	    il.append(new PUTFIELD(cpg.addFieldref(classGen.getClassName(),						   name, signature)));	}    }