incubator-graffito-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Felix Meschberger (JIRA)" <>
Subject [jira] Created: (GRFT-111) Extend Bean/Collection/FieldDescriptor with support for node type management tools
Date Tue, 17 Oct 2006 11:56:34 GMT
Extend Bean/Collection/FieldDescriptor with support for node type management tools

                 Key: GRFT-111
             Project: Graffito
          Issue Type: Improvement
            Reporter: Felix Meschberger

I started working with Graffito JCR-Mapping some weeks ago noticing that it actually implements
what I planned to implement in my own tool - and more :-) So I started to like that thing.
While working on it I thought, that it would be nice to define node types based on the mapping
definitions and also noticed, that this is actually also supported by the mapping descriptors.

Still, the support by the descriptors has some drawbacks: Field descriptors are thought to
only map to properties, while collection and bean descriptors are thought to only map to child
nodes. Consequently the field descriptors support attributes for property definition while
bean and collection definitions support attributes for child node definition. While this assumption
is mostly true, it fails in the case of multi-valued properties, which is implemented using
a collection descriptor. I myself implemented another CollectionConverter, which supports
residual jcrName values. Also in this case, the collection descriptor maps properties.

Hence I proopse to extend the bean and collection descriptors with attributes for property
definition. Namely I propose the addition of "jcrType" and "jcrMultiple" attributes which
should contain the property type and multi-value flag respectively. The respective BeanDescriptor
and CollectionDescriptor classes are to be extended for these attributes.

To further simplify node type management tools, I further propose, to define two interfaces
- PropertyDefDescriptor and ChildNodeDefDescriptor - which may be used by node type management
tools to extract the relevant information to define properties and child nodes. The FieldDescriptor
will only implement the PropertyDefDescriptor while the BeanDescriptor and CollectionDescriptor
classes will implement both interfaces. The node type management tool will then have to apply
heuristics to decide, whether a property or a child node should be defined.

Attached you will find the patchs to the FieldDescriptor, BeanDescriptor and CollectionDescriptor
classes as well as the proposed interfaces.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message