Package org.codehaus.jam.mutable

Provides a modifiable view of the JElement tree.

See:
          Description

Interface Summary
MAnnotatedElement Mutable version of JAnnotatedElement.
MAnnotation Mutable version of JAnnotation.
MClass Mutable version of JClass.
MComment Mutable version of JComment.
MConstructor Mutable version of JConstructor.
MElement Mutable version of JElement.
MField Mutable version of JField.
MInvokable Mutable version of JInvokable.
MMember Mutable version of JMember.
MMethod Mutable version of JMethod.
MPackage Mutable version of JPackage.
MParameter Mutable version of JParameter.
MSourcePosition Mutable version of JSourcePosition.
MTag  
 

Package org.codehaus.jam.mutable Description

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.

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.

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).