jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christophe Lombart" <christophe.lomb...@gmail.com>
Subject Re: OCM:Collection Element Node Names
Date Thu, 25 Sep 2008 13:57:00 GMT
On Thu, Sep 25, 2008 at 12:18, Boni Gopalan (BioImagene) <
Boni.G@bioimagene.com> wrote:

>
> Using jcrElementName="myname" in <collection-descriptor> works perfectly
> fine with 1.5-SNAPSHOT code base.  Each child node gets mapped into the
> exact name I specified in the mapping configuration.  However since 1.4
> DTD does not have jcrElementName as an attribute for
> <collection-descriptor>, the code fails when run through a validating
> xerces parser.  Chris , Can we publish the 1.5 DTD on a priority?


ok I will do that asap.

Christophe


>
>
> Thnaks
> Boni
>
>
> -----Original Message-----
> From: Boni Gopalan (BioImagene) [mailto:Boni.G@bioimagene.com]
> Sent: 24 September 2008 14:55
> To: users@jackrabbit.apache.org
> Subject: RE: OCM:Collection Element Node Names
>
> With this sort of support and activity OCM is going places !!..thank you
> very much.  I will look at the code later in the day and will update you
> either with good news that it works or with testcase/patch.
>
> -----Original Message-----
> From: Christophe Lombart [mailto:christophe.lombart@gmail.com]
> Sent: 24 September 2008 14:19
> To: users@jackrabbit.apache.org
> Subject: Re: OCM:Collection Element Node Names
>
> The class DigesterDescriptorReader reads the XML mapping file. For each
> persistent class, the reader will create a ClassDescriptor (see the pck
> org.apache.jackrabbit.ocm.mapper.model). For each classdescriptor, it
> will
> create FieldDescriptors, BeanDescriptors and CollectionDescriptors
> depending
> on the stucture of the persistent class. All those persistent meta info
> will
> be used by the ObjectContentManager. By using the different descriptors,
> it
> knows how to persist the java objects.
>
> Following your problem, maybe just add the attribute jcrElementName in
> your
> collection-descriptor. I think it should be ok but I have to review the
> code
> of DigesterDescriptorReader in more details. A unit test is missing for
> that. If you can provide this unit test, I will be very happy :-)
>
> eg. :
>        <collection-descriptor fieldName="emptyCollection"
> jcrName="emptyCollection" proxy="false" jcrElementName="myname"
>        elementClassName="org.apache.jackrabbit.ocm.testmodel.C" />
>
> Then, "myname" will be used as node name for all elements in the
> collection
> (in place of collection-element).
>
>
> If you need a different name for each element in the collection. You
> have to
> specify an id field in the Class Descriptor used for the collection
> elements
> (see the javadoc for DefaultCollectionConverterImpl &
> NTCollectionConverterImpl).
>
> eg.
>
> <class-descriptor className="Foo"  jcrType="nt:unstructured">
>            <field-descriptor fieldName="name"   jcrName="name" id
> =true/>
> </class-descriptor>
>
> if you are using the class Foo in a CollectionDescriptor, the value of
> the
> field called "name" will be used for the each node inside the
> collection.
> That's the default behaviour provided by the 2 main collection
> converters :
> DefaultCollectionConverterImpl & NTCollectionConverterImpl.
>
> Let me know if you need more information or if you have another idea to
> solve the problem.
>
> Thanks
> Christophe
>
>
> On Wed, Sep 24, 2008 at 09:41, Boni Gopalan (BioImagene) <
> Boni.G@bioimagene.com> wrote:
>
> > I need to have this feature through XML mapping file.  If you can
> > outline the approach I could fix and provide a patch.
> >
> > -----Original Message-----
> > From: Christophe Lombart [mailto:christophe.lombart@gmail.com]
> > Sent: 24 September 2008 10:57
> > To: users@jackrabbit.apache.org
> > Subject: Re: OCM:Collection Element Node Names
> >
> > This is not yet possible with the XML file mapping.
> > With tha OCM annotation, you can use jcrElementName on @Collection. It
> > should not be difficult to add it in the XML mapping file definition.
> >
> > Christophe
> >
> >
> > On Wed, Sep 24, 2008 at 06:31, Boni Gopalan (BioImagene) <
> > Boni.G@bioimagene.com> wrote:
> >
> > > I have a Bean in the following structure :
> > >
> > >
> > >
> > > Class Bar{
> > >
> > >            List<Foo> fooList;
> > >
> > > }
> > >
> > >
> > >
> > > Class Foo{
> > >
> > >            String name;
> > >
> > > }
> > >
> > >
> > >
> > > This structure is mapped with the following mapping file :
> > >
> > >
> > >
> > >            <class-descriptor className="Bar"
> > >
> > >                         jcrType="nt:unstructured">
> > >
> > >            <collection-descriptor fieldName="fooList"
> > jcrName="fooList"
> > > proxy="false"
> > >
> > >        elementClassName="Foo" jcrSameNameSiblings="false"/>
> > >
> > >            </class-descriptor>
> > >
> > >
> > >
> > >            <class-descriptor className="Foo"
> > >
> > >                         jcrType="nt:unstructured">
> > >
> > >                        <field-descriptor fieldName="name"
> > > jcrName="name"/>
> > >
> > >            </class-descriptor>
> > >
> > >
> > >
> > > When the data is saved the ensueing node structure is  like :
> > >
> > >
> > >
> > >       Bar
> > >
> > >          |___fooList
> > >
> > >                        |___collection-element
> > >
> > >                        |___collection-element
> > >
> > >
> > >
> > >
> > >
> > > My Question is how can I specify a particular node name for
> > > 'collection-element' ?  Is there an attribute in the mapping file
> > > (possibly for collection-descriptor) to specify the name of each
> > > element?
> > >
> > >
> > >
> > > Thanks
> > >
> > >
> > >
> > > Boni Gopalan
> > > Manager Engineering
> > > BioImagene, Pune
> > >
> > > +91-206-609-6579(O)
> > > +91-992-369-9356(C)
> > >
> > >
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message