Valeriy Podkolzin wrote:

> Thanks Remi,
>
> I was confused considering that a linked object is that was supposed to
> return and set "true", but it was on the contrary, the case of a regular
> SubjectNode, I could be notice it myself.
>
> Now everything work fine.
>
> Regards,
>
> Valeriy
> -----Original Message-----
> From: Remy Maucherat [mailto:[EMAIL PROTECTED]]
> Sent: Monday, May 07, 2001 5:29 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Removing LinkNode objects
>
> Quoting Valeriy Podkolzin <[EMAIL PROTECTED]>:
>
> > I tried to cleanup objects in the end of examples\xml\Test.
> >
> > With regular SubjectNodes everything is fine:
> >
> > subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/1.txt");
> > structure.remove(slideToken, subject4);
> > subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2.txt");
> > structure.remove(slideToken, subject4);
> > subject4 = (SubjectNode)structure.retrieve(slideToken,
> > "/toto/2/3/4/5");
> > structure.remove(slideToken, subject4);
> > subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2/3/4");
> > structure.remove(slideToken, subject4);
> > subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2/3");
> > structure.remove(slideToken, subject4);
> > subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2");
> >
> > But whatever I try to delete LinkObject:
> >
> > subject4 = (SubjectNode)structure.retrieve(slideToken,
> > "/toto/test.lnk",
> > true);
>
> If I remember the example well, that call will return the SubjectNode
> at "/toto".
>
> > structure.remove(slideToken, subject4);
> > // still return /toto subject in subject4
>
> Yes, that's correct.
> It's illegal to remove an object which has children so you get an exception.
> Note: There is a delete macro from the Macro helper which you can use to
> remove an entire branch of the namespace wich a single call.
>
> If you want to remove the link itself, do :
> subject4 = (SubjectNode)structure.retrieve(slideToken,
> "/toto/test.lnk",
> false);
> structure.remove(slideToken, subject4);
>
> > or
> >
> > //doesn't work either!        structure.remove(slideToken, link);// link is
> ref
> > to
> > LinkNode
> >
> > or
> >
> > subject4 = (SubjectNode)structure.retrieve(slideToken,
> > "/toto/test.lnk");
> > structure.remove(slideToken, subject4);
> >
> >
> > I got on
> >               subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto");
> >               structure.remove(slideToken, subject4);
> >
> > org.apache.slide.structure.ObjectHasChildrenException: Object /toto has
> > children      at
> > org.apache.slide.structure.StructureImpl.remove(StructureImpl.java:640)
> >
> > And I see that /toto is still in SQL database.
> >
> > Am I wrong in deleteing LinkNode, or is it a BUG?
>
> I think you may be wrong here, since all the retrieve you mentioned will
> return
> the node at "/toto".
>
> Remy

Reply via email to