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