A class file is represented by the {@link proguard.classfile.ClassFile
ClassFile} interface. This interface currently has two alternative
representations:
{@link ProgramClassFile ProgramClassFile}:
a complete representation that can be read, modified, and written back.
{@link LibraryClassFile LibraryClassFile}:
an incomplete representation that can be only be read. It is however
more compact than ProgramClassFile, and sufficient for
analyzing class files from library jars.