To use this class, first implement the BytecodeFactory and Statistics interfaces. Next, implement an Obfuscator interface, used to rename symbols defined in the bytecode streams. Now create an instance of this class to start the process. The method will also add all the superclasses and interfaces implemented by this class, reading them through the BytecodeFactory interface. Adding a class twice causes no harm, except to slow down the program a little.
Exceptions are classes in the java.
These will never be resolved fully to save loading time. This should be called only after all the classes that are involved have been added to the Environment. Is also hands off each class that was added to the environment to the obfuscator. Control how local variable table information is written out. Control how source file debugging information is written out.