@Override public final void setAccessible(boolean flag) throws SecurityException { accessibleObject.setAccessible(flag); }
/** * changes the accessibleObject accessibility and returns true if accessibility was changed */ public void enableAccess(AccessibleObject accessibleObject) { wasAccessible = accessibleObject.isAccessible(); accessibleObject.setAccessible(true); } }
@Override public final <A extends Annotation> A getAnnotation(Class<A> annotationClass) { return accessibleObject.getAnnotation(annotationClass); }
@Override public final boolean isAccessible() { return accessibleObject.isAccessible(); }
private static boolean isManagedAttribute(AccessibleObject object) { return object.isAnnotationPresent(ManagedAttribute.class) || (object.isAnnotationPresent(Property.class) && object.getAnnotation(Property.class).exposeAsManagedAttribute()); } }
@Override public final boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { return accessibleObject.isAnnotationPresent(annotationClass); }
@Override public final Annotation[] getAnnotations() { return accessibleObject.getAnnotations(); }
@Override public final boolean isAccessible() { return accessibleObject.isAccessible(); }
@Override public String getDescription() { if (this.accessible.isAnnotationPresent(ManagedAttribute.class)) { return this.accessible.getAnnotation(ManagedAttribute.class).description(); } if (this.accessible.isAnnotationPresent(Property.class)) { return this.accessible.getAnnotation(Property.class).description(); } return this.accessible.toString(); }
/** * Returns <code>true</code> if annotation is present on * given accessible object. */ public boolean hasAnnotation(AccessibleObject accessibleObject) { return accessibleObject.isAnnotationPresent(annotationClass); }
@Override public final Annotation[] getAnnotations() { return accessibleObject.getAnnotations(); }
/** * safely disables access */ public void safelyDisableAccess(AccessibleObject accessibleObject) { assert wasAccessible != null : "accessibility info shall not be null"; try { accessibleObject.setAccessible(wasAccessible); } catch (Throwable t) { //ignore } }
/** * Suppress access check against a reflection object. SecurityException is silently ignored. * Checks first if the object is already accessible. */ public static void forceAccess(AccessibleObject accObject){ if (accObject.isAccessible()) { return; } try { accObject.setAccessible(true); } catch (SecurityException sex) { // ignore } }
@Override public final boolean isAccessible() { return accessibleObject.isAccessible(); }
@Override public String getName() { if (this.accessible.isAnnotationPresent(ManagedAttribute.class)) { String name = this.accessible.getAnnotation(ManagedAttribute.class).name(); if (!name.isEmpty()) return name; } if (this.accessible.isAnnotationPresent(Property.class)) { String name = this.accessible.getAnnotation(Property.class).name(); if (!name.isEmpty()) return name; } return null; }
@Override public final <A extends Annotation> A getAnnotation(Class<A> annotationClass) { return accessibleObject.getAnnotation(annotationClass); }
@Override public final boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { return accessibleObject.isAnnotationPresent(annotationClass); }
@Override public final Annotation[] getAnnotations() { return accessibleObject.getAnnotations(); }
Method method = targetClass.getDeclaredMethod(methodName, argClasses); method.setAccessible(true); return method.invoke(targetObject, argObjects);
/** * changes the accessibleObject accessibility and returns true if accessibility was changed */ public void enableAccess(AccessibleObject accessibleObject) { wasAccessible = accessibleObject.isAccessible(); accessibleObject.setAccessible(true); } }