public void renameClassElements(Hashtable classNameMap, Hashtable memberNameMap) { // this & super class renameString(classNameMap, (CONSTANT_Index_info) getEntry(this_class)); renameString(classNameMap, (CONSTANT_Index_info) getEntry(super_class)); // implemented interfaces // handled by Class entries below // classes & Strings // descriptors int size = cptEntries.size(); for (int i = 1; i < size; i++) { ConstantPoolEntry cpe = getEntry(i); if (cpe == null) continue; switch (cpe.getTag()) { case VMDescriptor.CONSTANT_String: case VMDescriptor.CONSTANT_Class: { CONSTANT_Index_info cii = (CONSTANT_Index_info) cpe; renameString(classNameMap, cii); break; } case VMDescriptor.CONSTANT_NameAndType: { CONSTANT_Index_info cii = (CONSTANT_Index_info) cpe; String newDescriptor = newDescriptor(classNameMap, nameIndexToString(cii.getI2())); if (newDescriptor != null) { doRenameString(cii.getI2(), newDescriptor); } break; } default: continue; } } // System.out.println("Starting Fields"); // now the methods & fields, only descriptors at this time renameMembers(getFields(), classNameMap, memberNameMap); renameMembers(getMethods(), classNameMap, memberNameMap); }