jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "BOWLER Paul" <Paul.Bow...@alcatel-lucent.com>
Subject RE: Newbie: PropertyType.REFERENCE
Date Thu, 02 Jul 2009 08:26:33 GMT
Sorry, but I still don't get it!

I can create a node that is referencable by adding the mix:referenceable attribute. That much
is clear.

How can I now create another node elsewhere in my tree that references this node? The documentation
is not clear on this.

Thanks,

Paul.

-----Original Message-----
From: Daniel Manzke [mailto:daniel.manzke@googlemail.com] 
Sent: 01 July 2009 17:55
To: users@jackrabbit.apache.org
Subject: Re: Newbie: PropertyType.REFERENCE

Hi Paul,
every node, which is referenceable has a UUID. This ID is used for
references. The created value (by the ValueFactory) should be a String. This
String contains the UUID.

In my example the record node has a property "forge:reference". There you
can place the references.

<propertyDefinition name="forge:Reference" requiredType="Reference"
autoCreated="false" mandatory="false" onParentVersion="COPY"
protected="false" multiple="true"/>

My document node is referenceable. So it has an unique ID.
<supertype>mix:referenceable</supertype>


So take the node which should hold the refernce (in my example the record)
and take the node which you want to reference to and create a Reference
Value with the help of the ValueFactory.

This value has to be set for the "forge:Reference" property.


Enough?! :)


Daniel

2009/7/1 BOWLER Paul <Paul.Bowler@alcatel-lucent.com>

> Daniel,
>
> Thanks for the reply, but I don't see how this uses the REFERENCE property
> to point to another node?
>
> Can anyone else enlighten me?
>
> Thanks,
>
> Paul.
>
> -----Original Message-----
> From: Daniel Manzke [mailto:daniel.manzke@googlemail.com]
> Sent: 01 July 2009 16:57
> To: users@jackrabbit.apache.org
> Subject: Re: Newbie: PropertyType.REFERENCE
>
> Hi Paul,
> here is a snippet.
>
> Node rootNode = session.getRootNode();
> Node record = rootNode.getNode(recordPath); //retrieves a node for an
> electronical record
> Node document = rootNode.getNode(documentPath); //retrieves a node for an
> document in another record
> *Value value = session.getValueFactory().createValue(document); //creates
> the reference value*
> *record.setProperty("forge:Referenzen", new Value[]{value}); //setting the
> reference property*
> session.save();
>
>
> I don't know if this is the best way. If I remember right, I took the way
> out of the TCK-Tests. ;)
>
>
> Greets,
> Daniel
>
> 2009/7/1 BOWLER Paul <Paul.Bowler@alcatel-lucent.com>
>
> > Can anyone demonstrate (in code) how to set one Node to point to another
> > Node using node.setProperty(xxx, xxx, PropertyType.REFERENCE).
> >
> > I can't find any examples anywhere on how to do this!
> >
> > Thanks,
> >
> > Paul.
> >
> > P.S. Is there a good JCR book available that I can read?
> >
>
>
>
> --
> Mit freundlichen Grüßen
>
> Daniel Manzke
>



-- 
Mit freundlichen Grüßen

Daniel Manzke

Mime
View raw message