incubator-graffito-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Felix Meschberger (JIRA)" <j...@apache.org>
Subject [jira] Updated: (GRFT-111) Extend Bean/Collection/FieldDescriptor with support for node type management tools
Date Tue, 17 Oct 2006 12:17:36 GMT
     [ http://issues.apache.org/jira/browse/GRFT-111?page=all ]

Felix Meschberger updated GRFT-111:
-----------------------------------

    Attachment: NodeTypeManagerImpl.java

For illustration, my node type management class making use of the PropertyDefDescriptor and
ChildNodeDefDescriptor interfaces. This class is based on the jackrabbit/NodeTypeManagerImpl
class of the JCR-Nodemanagement project with some differences:

   * Only a single node type (aka Class Descriptor) can be handled by the createNodeType method
   * Node types are gathered in an internal list and only actually registered by the registerNodeTypes
method
   * Existence of super types is no checked, such that they may be defined after their sub
types, if both are defined in the same batch.
   * Added support for BeanDescriptor and CollectionDescriptor. Uses simple heuristic to decide
on whether to define a property or a child node
   * Added getNodeDefinition

> Extend Bean/Collection/FieldDescriptor with support for node type management tools
> ----------------------------------------------------------------------------------
>
>                 Key: GRFT-111
>                 URL: http://issues.apache.org/jira/browse/GRFT-111
>             Project: Graffito
>          Issue Type: Improvement
>            Reporter: Felix Meschberger
>         Attachments: GRFT-111.zip, NodeTypeManagerImpl.java
>
>
> 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: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message