final int setStartNode = cpg.addInterfaceMethodref(NODE_ITERATOR, SET_START_NODE, "(I)"+ NODE_ITERATOR_SIG);
    public static void translateSortIterator(ClassGenerator classGen,					     MethodGenerator methodGen,					     Expression nodeSet,					     Vector sortObjects) {	final ConstantPoolGen cpg = classGen.getConstantPool();	final InstructionList il = methodGen.getInstructionList();	// SortingIterator.SortingIterator(NodeIterator,NodeSortRecordFactory);	final int init = cpg.addMethodref(SORT_ITERATOR, "<init>",					  "("					  + NODE_ITERATOR_SIG					  + NODE_SORT_FACTORY_SIG					  + ")V");		final int setStartNode = cpg.addInterfaceMethodref(NODE_ITERATOR,							   SET_START_NODE,							   "(I)"+							   NODE_ITERATOR_SIG);		il.append(new NEW(cpg.addClass(SORT_ITERATOR)));	il.append(DUP);	// Get the current node iterator	if (nodeSet == null) {	// apply-templates default	    final int children = cpg.addInterfaceMethodref(DOM_INTF,							   "getAxisIterator",							   "(I)"+							   NODE_ITERATOR_SIG);	    il.append(methodGen.loadDOM());	    il.append(new PUSH(cpg, Axis.CHILD));	    il.append(new INVOKEINTERFACE(children, 2));	}	else {	    nodeSet.translate(classGen, methodGen);	}		// Compile the code for the NodeSortRecord producing class and pass	// that as the last argument to the SortingIterator constructor.	compileSortRecordFactory(sortObjects, classGen, methodGen);	il.append(new INVOKESPECIAL(init));    }