Hello all. I have written a package I would like to
contribute to xbeans v2. It is an abstraction layer for Java types
and their associated metadta that I believe will be critical in xbeans'
compilation phase. Just as you need a SOM to represent the schema
types you are binding to and from, you use JAM to model the Java types
you are binding to and from.
Here is a blurb from the package.html docs that provides a little
The Java Abstraction Model (JAM) provides a representation of
Java abstractions (such as classes and methods) and their
associated metadata. This model serves to decouple its clients'
from any specific introspection mechanism such as javadoc or
This approach has several advantages:
A unified API for viewing Java types
Java types can be described in java sources, in class
or even synthesized from scratch. JAM provides a single API
allows your code to remain decoupled from tool such as
Clean and consistent access to metadata
Metadata is a hot topic at the moment, and the way we
deal with it
is going to change dramatically over the next year or two.
By writing to the JAM API, you can be sure that you won't
have to rewrite your code to accommodate emerging tools and
standards (JSR175, for example).
Pluggable metadata stores
Metadata can be retrieved from an external source
(such as an XML file)
or even generated programmatically. This also allows
be associated with Java constructs that may not normally support
annotations (such as packages).
A Node-based view of Java constructs
JAM clients have the option of viewing their java
constructs as a tree
of generic, DOM-like nodes (packages contain classes, classes
methods) each of which may have associated annotations. This
extremely helpful for tools which wish to support annotation