A class adapter.
A class adapter is the integration point for manipulating class information at runtime, e.g. overriding annotations or obtaining an aop instance advisor.
The class adapter has the following protocol.
- Use getClassInfo to obtain information about the class.
- Obtain an Instance ClassAdapter if the class information should be overridden at the instance level, e.g. annotations
- Obtain the dependencies of the Class/Instance and any advice factories, e.g. @Depends annotations
- Obtain the JoinpointFactory so the instance can be constructed.
FIXME: This class deals with too many concerns FIXME: Need a mechanism to allow different use cases for the unadvised case. i.e. whether in the absence of aop requirements the adapter should give a proxy advisor, instrument the class for aop anyway or default back to reflection (most likely!)
@author
Adrian Brock