blob: aa3482a4d95bc264082ba0198ebd05bfecfa0085 [file] [log] [blame]
<body>
<p>
Provides a modifiable view of the JElement tree. This package contains
interfaces which parallel and extend the JElement tree, adding and
editing functionality to that the view of the java type system can
be modified.
</p>
<p>
Typically, this is only used in conjunction with an 'initializer'
ElementVisitor which is run on a JClass when it is first loaded. The
initializer might use these editable 'M*' abstractions to, for example,
do some pre-processing on the comments or annotations, or to determine
which methods on a class should be exposed as JProperties. The M*
classes are also used by JAM providers in implementing the JamClassBuilder
interface, which populates an EClass with methods, fields, and so on.
</p>
<p>
It is also possible to use this package to synthesize a view
of a java class which does not actually exist in any class or source
file. This could be useful, for example, to drive a code-generation
mechanism (Note that JAM does not provide a model for the contents of
method bodies, so this may not be a useful approach).
</p>
</body>