Hi Daria,
Wir wollten gerade als Beispiel/Test für das
Refactoring das Löschen
von allen externen Links auf einer Seite implementieren. Dabei haben
wir festgestellt, dass es keine Möglichkeit gibt, aus einem Container
(z.B. SW2DocumentGroup) ein "Kind" zu entfernen, da children ein Array
ist und das remove nicht zulässt. Wir dachten daran, Array durch eine
Collection zu ersetzen, was aber nicht ohne weiteres funktioniert.
Hast Du eine Idee, wie wir das lösen können?
what about
self setChildren: (self children
copyWithout: aChild).
and
self setChildren: (self children
copyWith: aChild)
?
The rational of using arrays is that they are ways more space and time
efficient than ordererd collections. Modifications to the parse tree
are usually rare, the current code mostly just rebuilds the document.
I suggest that you add the code snippets avove as extension methods
#add: and #remove: to the composite of the document hierarchy.
One thing you have to take care is that some document nodes require a
parent information, like the internal links to do the update. So if you
add new links you have to set the owner somehow, unless they won't
work.
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch