public final void renameClass(Map classnames){
  String jvmNewThisName=(String)classnames.get(Descriptor.toJvmName(thisclassname));
  if (jvmNewThisName != null)   thisclassname=Descriptor.toJavaName(jvmNewThisName);
  constPool.renameClass(classnames);
  AttributeInfo.renameClass(attributes,classnames);
  ArrayList list=methods;
  int n=list.size();
  for (int i=0; i < n; ++i) {
    MethodInfo minfo=(MethodInfo)list.get(i);
    String desc=minfo.getDescriptor();
    minfo.setDescriptor(Descriptor.rename(desc,classnames));
    AttributeInfo.renameClass(minfo.getAttributes(),classnames);
  }
  list=fields;
  n=list.size();
  for (int i=0; i < n; ++i) {
    FieldInfo finfo=(FieldInfo)list.get(i);
    String desc=finfo.getDescriptor();
    finfo.setDescriptor(Descriptor.rename(desc,classnames));
    AttributeInfo.renameClass(finfo.getAttributes(),classnames);
  }
}

public final void renameClass ( Map classnames ) { String jvmNewThisName = ( String ) classnames . get ( Descriptor . toJvmName ( thisclassname ) ) ; if ( jvmNewThisName != null ) thisclassname = Descriptor . toJavaName ( jvmNewThisName ) ; constPool . renameClass ( classnames ) ; AttributeInfo . renameClass ( attributes , classnames ) ; ArrayList list = methods ; int n = list . size ( ) ; for ( int i = 0 ; i < n ; ++ i ) { MethodInfo minfo = ( MethodInfo ) list . get ( i ) ; String desc = minfo . getDescriptor ( ) ; minfo . setDescriptor ( Descriptor . rename ( desc , classnames ) ) ; AttributeInfo . renameClass ( minfo . getAttributes ( ) , classnames ) ; } list = fields ; n = list . size ( ) ; for ( int i = 0 ; i < n ; ++ i ) { FieldInfo finfo = ( FieldInfo ) list . get ( i ) ; String desc = finfo . getDescriptor ( ) ; finfo . setDescriptor ( Descriptor . rename ( desc , classnames ) ) ; AttributeInfo . renameClass ( finfo . getAttributes ( ) , classnames ) ; } }
replaces all occurrences of several class names in the class file .
