1 21 package proguard.classfile.visitor; 22 23 import proguard.classfile.*; 24 import proguard.util.*; 25 26 27 34 public class MemberNameFilter implements MemberVisitor 35 { 36 private StringMatcher regularExpressionMatcher; 37 private MemberVisitor memberVisitor; 38 39 40 47 public MemberNameFilter(String regularExpression, 48 MemberVisitor memberVisitor) 49 { 50 this.regularExpressionMatcher = new ClassNameMatcher(regularExpression); 51 this.memberVisitor = memberVisitor; 52 } 53 54 55 57 public void visitProgramField(ProgramClass programClass, ProgramField programField) 58 { 59 if (accepted(programField.getName(programClass))) 60 { 61 memberVisitor.visitProgramField(programClass, programField); 62 } 63 } 64 65 66 public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) 67 { 68 if (accepted(programMethod.getName(programClass))) 69 { 70 memberVisitor.visitProgramMethod(programClass, programMethod); 71 } 72 } 73 74 75 public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) 76 { 77 if (accepted(libraryField.getName(libraryClass))) 78 { 79 memberVisitor.visitLibraryField(libraryClass, libraryField); 80 } 81 } 82 83 84 public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) 85 { 86 if (accepted(libraryMethod.getName(libraryClass))) 87 { 88 memberVisitor.visitLibraryMethod(libraryClass, libraryMethod); 89 } 90 } 91 92 93 95 private boolean accepted(String name) 96 { 97 return regularExpressionMatcher.matches(name); 98 } 99 } 100 | Popular Tags |