Runtime Behavioral Reflection.

(also recently known as interceptors or AOP?)

This package enables a metaobject to trap method calls and field accesses on a regular Java object. It provides a class `Reflection`, which is a main module for implementing runtime behavioral reflection. It also provides a class `Loader` and `Compiler` as utilities for dynamically or statically translating a regular class into a reflective class.

An instance of the reflective class is associated with a runtime metaobject and a runtime class metaobject, which control the behavior of that instance. The runtime metaobject is created for every (base-level) instance but the runtime class metaobject is created for every (base-level) class. `Metaobject` is the root class of the runtime metaobject and `ClassMetaobject` is the root class of the runtime class metaobject.

This package is provided as a sample implementation of the reflection mechanism with Javassist. All the programs in this package uses only the regular Javassist API; they never call any hidden methods.

The most significant class in this package is `Reflection`. See the description of this class first.