You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by Valeriy Podkolzin <vp...@atg.com> on 2001/05/07 22:13:25 UTC
Removing LinkNode objects
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);
structure.remove(slideToken, subject4);
// still return /toto subject in 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?
Valeriy Podkolzin
Re: Removing LinkNode objects
Posted by Sachin Patil <sa...@plexustech.net>.
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:remy@betaversion.org]
> Sent: Monday, May 07, 2001 5:29 PM
> To: slide-user@jakarta.apache.org
> Subject: Re: Removing LinkNode objects
>
> Quoting Valeriy Podkolzin <vp...@atg.com>:
>
> > 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
RE: Removing LinkNode objects
Posted by Valeriy Podkolzin <vp...@atg.com>.
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:remy@betaversion.org]
Sent: Monday, May 07, 2001 5:29 PM
To: slide-user@jakarta.apache.org
Subject: Re: Removing LinkNode objects
Quoting Valeriy Podkolzin <vp...@atg.com>:
> 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
Re: Removing LinkNode objects
Posted by Remy Maucherat <re...@betaversion.org>.
Quoting Valeriy Podkolzin <vp...@atg.com>:
> 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