@Override public final int getModifiers() { return member.getModifiers(); }
public static boolean isConcrete(Member member) { int mod = member.getModifiers(); return (mod & (Modifier.INTERFACE | Modifier.ABSTRACT)) == 0; }
public static boolean isConcrete(Member member) { int mod = member.getModifiers(); return (mod & (Modifier.INTERFACE | Modifier.ABSTRACT)) == 0; }
@Override public final int getModifiers() { return member.getModifiers(); }
@Override public final int getModifiers() { return member.getModifiers(); }
public boolean evaluate(Object arg) { return (((Member)arg).getModifiers() & rejectMask) == 0; } }
@Override public boolean isCompilable() { return (Modifier.isPublic(this.member.getModifiers()) && Modifier.isPublic(this.member.getDeclaringClass().getModifiers())); }
/** * Returns <code>true</code> if class member is public. */ public static boolean isPublic(Member member) { return Modifier.isPublic(member.getModifiers()); }
private static void makeAccessible(AccessibleObject ao) { if (ao instanceof Member) { Member member = (Member) ao; if (!Modifier.isPublic(member.getModifiers())) { ao.setAccessible(true); } } }
private static <T extends AccessibleObject & Member> void validateMember(T object) { int modifiers = object.getModifiers(); if ((modifiers & (PRIVATE | STATIC)) != 0) { throw new IllegalStateException(object.getDeclaringClass().getName() + "." + object.getName() + " must not be private or static"); } if ((modifiers & PUBLIC) == 0) { object.setAccessible(true); } }
/** Returns {@code true} if {@code member} is visible under {@code this} visibility. */ final boolean isVisible(Member member) { return isVisible(member.getModifiers()); }
/** * Returns <code>true</code> if class member is public and if its declaring class is also public. */ public static boolean isPublicPublic(Member member) { if (Modifier.isPublic(member.getModifiers())) { if (Modifier.isPublic(member.getDeclaringClass().getModifiers())) { return true; } } return false; }
public static MethodInfo getMethodInfo(Member member) { return getMethodInfo(member, member.getModifiers()); }
/** * Returns whether a {@link Member} is accessible. * @param m Member to check * @return {@code true} if <code>m</code> is accessible */ static boolean isAccessible(final Member m) { return m != null && Modifier.isPublic(m.getModifiers()) && !m.isSynthetic(); }
/** * Check a Member for basic accessibility. * @param m Member to check * @return true if <code>m</code> is accessible */ static boolean isAccessible(Member m) { return m != null && Modifier.isPublic(m.getModifiers()) && !isSynthetic(m); }
@Override protected int getModifiers() { return _base.getMember().getModifiers(); }
@Override protected int getModifiers() { return _base.getMember().getModifiers(); }
/** * Returns whether a Member is accessible. * @param m Member to check * @return true if <code>m</code> is accessible */ static boolean isAccessible(Member m) { return m != null && Modifier.isPublic(m.getModifiers()) && !m.isSynthetic(); }
public boolean evaluate(Object arg) { int mod = (arg instanceof Member) ? ((Member)arg).getModifiers() : ((Integer)arg).intValue(); if (Modifier.isPrivate(mod)) { return false; } else if (Modifier.isPublic(mod)) { return true; } else if (Modifier.isProtected(mod)) { return protectedOk; } else { return pkg.equals(TypeUtils.getPackageName(Type.getType(((Member)arg).getDeclaringClass()))); } } }
@Override public void generateCode(String propertyName, MethodVisitor mv, CodeFlow cf) { boolean isStatic = Modifier.isStatic(this.member.getModifiers()); String descriptor = cf.lastDescriptor(); String classDesc = this.member.getDeclaringClass().getName().replace('.', '/'); if (!isStatic) { if (descriptor == null) { cf.loadTarget(mv); } if (descriptor == null || !classDesc.equals(descriptor.substring(1))) { mv.visitTypeInsn(CHECKCAST, classDesc); } } else { if (descriptor != null) { // A static field/method call will not consume what is on the stack, // it needs to be popped off. mv.visitInsn(POP); } } if (this.member instanceof Method) { mv.visitMethodInsn((isStatic ? INVOKESTATIC : INVOKEVIRTUAL), classDesc, this.member.getName(), CodeFlow.createSignatureDescriptor((Method) this.member), false); } else { mv.visitFieldInsn((isStatic ? GETSTATIC : GETFIELD), classDesc, this.member.getName(), CodeFlow.toJvmDescriptor(((Field) this.member).getType())); } } }