1 54 package org.logicalcobwebs.cglib.core; 55 56 import java.lang.reflect.*; 57 import org.logicalcobwebs.asm.Type; 58 59 public class VisibilityPredicate implements Predicate { 60 private boolean protectedOk; 61 private String pkg; 62 63 public VisibilityPredicate(Class source, boolean protectedOk) { 64 this.protectedOk = protectedOk; 65 pkg = TypeUtils.getPackageName(Type.getType(source)); 66 } 67 68 public boolean evaluate(Object arg) { 69 int mod = ((Member)arg).getModifiers(); 70 if (Modifier.isStatic(mod) || Modifier.isPrivate(mod)) { 71 return false; 72 } else if (Modifier.isPublic(mod)) { 73 return true; 74 } else if (Modifier.isProtected(mod)) { 75 return protectedOk; 76 } else { 77 return pkg.equals(TypeUtils.getPackageName(Type.getType(((Member)arg).getDeclaringClass()))); 78 } 79 } 80 } 81 82 | Popular Tags |