On Mon, 29 Aug 2011, Nicolas Anquetil wrote:

In XML-Parser-Nodes we have:

XMLNodeWithElements
XMLDocument
XMLElement

A document is composed of elements that can hold recursively other elements

XMLNodeWithElements implements (in protocol enumerating)
allElementsDo: aBlock
"Descend depth-first visiting each element with aBlock."

self hasElements
ifTrue: [self elementsDo: [:each | each allElementsDo: aBlock]]

Looks perfectly normal to me
But then:

XMLElement implements (in protocol searching !)
allElementsDo: aBlock
"See superclass version."

aBlock value: self.

super allElementsDo: aBlock.

which means that
anXMLElement allElementsDo: [...]
runs first on itself and then on its elements ?!?
Seems counter intuitive to me.

Should I remove this?

IMHO you shouldn't, because it is enumerating the whole tree, which is exactly what I'd expect from this method. But the method should be recategorized.


Levente


nicolas



Reply via email to