1 21 package proguard.classfile.visitor; 22 23 import proguard.classfile.*; 24 import proguard.classfile.util.*; 25 26 import java.io.*; 27 28 29 37 public class SimpleClassPrinter 38 implements ClassVisitor, 39 MemberVisitor 40 { 41 private boolean printAccessModifiers; 42 private PrintStream ps; 43 44 45 49 public SimpleClassPrinter() 50 { 51 this(true); 52 } 53 54 58 public SimpleClassPrinter(boolean printAccessModifiers) 59 { 60 this(printAccessModifiers, System.out); 61 } 62 63 67 public SimpleClassPrinter(boolean printAccessModifiers, 68 PrintStream printStream) 69 { 70 this.printAccessModifiers = printAccessModifiers; 71 this.ps = printStream; 72 } 73 74 75 77 public void visitProgramClass(ProgramClass programClass) 78 { 79 ps.println(ClassUtil.externalFullClassDescription( 80 printAccessModifiers ? 81 programClass.getAccessFlags() : 82 0, 83 programClass.getName())); 84 } 85 86 87 public void visitLibraryClass(LibraryClass libraryClass) 88 { 89 ps.println(ClassUtil.externalFullClassDescription( 90 printAccessModifiers ? 91 libraryClass.getAccessFlags() : 92 0, 93 libraryClass.getName())); 94 } 95 96 97 99 public void visitProgramField(ProgramClass programClass, ProgramField programField) 100 { 101 ps.println(ClassUtil.externalFullClassDescription( 102 printAccessModifiers ? 103 programClass.getAccessFlags() : 104 0, 105 programClass.getName()) + 106 ": " + 107 ClassUtil.externalFullFieldDescription( 108 printAccessModifiers ? 109 programField.getAccessFlags() : 110 0, 111 programField.getName(programClass), 112 programField.getDescriptor(programClass))); 113 } 114 115 116 public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) 117 { 118 ps.println(ClassUtil.externalFullClassDescription( 119 printAccessModifiers ? 120 programClass.getAccessFlags() : 121 0, 122 programClass.getName()) + 123 ": " + 124 ClassUtil.externalFullMethodDescription( 125 programClass.getName(), 126 printAccessModifiers ? 127 programMethod.getAccessFlags() : 128 0, 129 programMethod.getName(programClass), 130 programMethod.getDescriptor(programClass))); 131 } 132 133 134 public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) 135 { 136 ps.println(ClassUtil.externalFullClassDescription( 137 printAccessModifiers ? 138 libraryClass.getAccessFlags() : 139 0, 140 libraryClass.getName()) + 141 ": " + 142 ClassUtil.externalFullFieldDescription( 143 printAccessModifiers ? 144 libraryField.getAccessFlags() : 145 0, 146 libraryField.getName(libraryClass), 147 libraryField.getDescriptor(libraryClass))); 148 } 149 150 151 public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) 152 { 153 ps.println(ClassUtil.externalFullClassDescription( 154 printAccessModifiers ? 155 libraryClass.getAccessFlags() : 156 0, 157 libraryClass.getName()) + 158 ": " + 159 ClassUtil.externalFullMethodDescription( 160 libraryClass.getName(), 161 printAccessModifiers ? 162 libraryMethod.getAccessFlags() : 163 0, 164 libraryMethod.getName(libraryClass), 165 libraryMethod.getDescriptor(libraryClass))); 166 } 167 } 168 | Popular Tags |