proguard.obfuscate
Class MemberNameConflictFixer

java.lang.Object
  extended by proguard.obfuscate.MemberNameConflictFixer
All Implemented Interfaces:
MemberVisitor

public class MemberNameConflictFixer
extends java.lang.Object
implements MemberVisitor

This MemberInfoVisitor solves obfuscation naming conflicts in all class members that it visits. It avoids names from the given descriptor map, delegating to the given obfuscator in order to get a new name if necessary.


Constructor Summary
MemberNameConflictFixer(boolean allowAggressiveOverloading, java.util.Map descriptorMap, WarningPrinter warningPrinter, MemberObfuscator memberObfuscator)
          Creates a new MemberNameConflictFixer.
 
Method Summary
 void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField)
           
 void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod)
           
 void visitProgramField(ProgramClass programClass, ProgramField programField)
           
 void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MemberNameConflictFixer

public MemberNameConflictFixer(boolean allowAggressiveOverloading,
                               java.util.Map descriptorMap,
                               WarningPrinter warningPrinter,
                               MemberObfuscator memberObfuscator)
Creates a new MemberNameConflictFixer.

Parameters:
allowAggressiveOverloading - a flag that specifies whether class members can be overloaded aggressively.
descriptorMap - the map of descriptors to [new name - old name] maps.
warningPrinter - an optional warning printer to which warnings about conflicting name mappings can be printed.
memberObfuscator - the obfuscator that can assign new names to members with conflicting names.
Method Detail

visitProgramField

public void visitProgramField(ProgramClass programClass,
                              ProgramField programField)
Specified by:
visitProgramField in interface MemberVisitor

visitProgramMethod

public void visitProgramMethod(ProgramClass programClass,
                               ProgramMethod programMethod)
Specified by:
visitProgramMethod in interface MemberVisitor

visitLibraryField

public void visitLibraryField(LibraryClass libraryClass,
                              LibraryField libraryField)
Specified by:
visitLibraryField in interface MemberVisitor

visitLibraryMethod

public void visitLibraryMethod(LibraryClass libraryClass,
                               LibraryMethod libraryMethod)
Specified by:
visitLibraryMethod in interface MemberVisitor