Normally in Java the only members of a class (fields, methods) that can be accessed are the ones defined with public access. OGNL includes an interface that you can set globally (using OgnlContext.setMemberAccessManager()
)
that allows you to modify the runtime in Java 2 to allow access to private, protected and package protected fields and methods. Included in the OGNL package is the DefaultMemberAccess
class. It
contains a constructor that allows you to selectively lower the protection on any private, protected or package protected members using the AccessibleObject
interface in Java2. The default class can be subclasses to
select different objects for which accessibility is allowed.
public interface MemberAccess { public Object setup( Member member ); public void restore( Member member, Object state ); public boolean isAccessible( Member member ); }