1 21 package proguard.classfile.visitor; 22 23 import proguard.classfile.*; 24 25 26 35 public class ClassAccessFilter implements ClassVisitor 36 { 37 private int requiredSetAccessFlags; 38 private int requiredUnsetAccessFlags; 39 private ClassVisitor classVisitor; 40 41 42 51 public ClassAccessFilter(int requiredSetAccessFlags, 52 int requiredUnsetAccessFlags, 53 ClassVisitor classVisitor) 54 { 55 this.requiredSetAccessFlags = requiredSetAccessFlags; 56 this.requiredUnsetAccessFlags = requiredUnsetAccessFlags; 57 this.classVisitor = classVisitor; 58 } 59 60 61 63 public void visitProgramClass(ProgramClass programClass) 64 { 65 if (accepted(programClass.getAccessFlags())) 66 { 67 classVisitor.visitProgramClass(programClass); 68 } 69 } 70 71 72 public void visitLibraryClass(LibraryClass libraryClass) 73 { 74 if (accepted(libraryClass.getAccessFlags())) 75 { 76 classVisitor.visitLibraryClass(libraryClass); 77 } 78 } 79 80 81 83 private boolean accepted(int accessFlags) 84 { 85 return (requiredSetAccessFlags & ~accessFlags) == 0 && 86 (requiredUnsetAccessFlags & accessFlags) == 0; 87 } 88 } 89 | Popular Tags |