Provides an API for program modification.

This package provides a set of interfaces for applying modifications on a program. These modifications are abstractly defined and can occur at compile-time, load-time, or runtime depending on the ProgramModifier implementation. Moreover, since it uses the aopi.reflect package which provides an abstract representation of the program, the transformations can be implemented at a source-code level or at a bytecode level, depending on the implementation.

This API is specific to AOP. This means that the set of program modifications that is allowed is a restricted set compared to a general-purpose API. However, general-purpose transformation tools should provide an implementation of this API in order to be easily used by several AO systems.

Dependencies

This package requires the aopi.reflect package.

It is typically used by aopi.core package (but in an optional mode).