On 11.4.12 18:31, Felix Meschberger wrote:
Hi,

Am 11.04.2012 um 12:03 schrieb Michael Dürig:



On 11.4.12 10:15, Felix Meschberger wrote:

[...]

But then: the move and copy methods look like out-of-band somehow and do not 
really concern the state of the node itself but potentially completely 
unrelated ones.
I would move them somewhere else.

That'd mean we need to introduce a Branch class on which those methods
lived. Branch instances would then be returned from NodeStore.branch()
and would additionally contain methods for obtaining NodeStateEditor
instances.

OTHO, those methods are not more out of band than Object.equals(). So in
a way we are idiomatic ;-)

How is Object.equals(Object) out of band ? It returns information on equality 
of another object with this.

NodeStateEditor.move(src, dst) moves a node(state) to another location. This is 
per-se urelated to this NodeStateEditor.

It is not so out of bound after all if you consider that a NodeState consists not only of its immediate children but rather of the full reflexive transitive closure on child states. The src and dst parameters may refer to such states only (see Javadoc) and thus only modify the state of this node state alone.

Michael


But we could modify the API to actually related to this NodeStateEditor: 
NodeStateEditor.moveTo(dst) and NodeStateEditor.copyTo(dst). This in fact also sounds 
less "side-effecty"

Regards
Felix


Michael


Regards
Felix

Reply via email to