On 17 déc. 2010, at 15:41, Emmanuel Lecharny wrote:

> The move operation has a limited impact if we move the AP, except if we move 
> an IAP. For subentries and entreeies, it's slightly more complex
> 
> +--+
> |AP|
> +--+
> If the AP is an IAP, we have to check that the new position is valid. If so, 
> we can move it. Then, as the the new parent AP may have changed, we have to 
> modify the IAP seqNumber so that the underlying entries can be updated later. 
> This has to be done for all the IAP descendants too.
> 
> >>>-------------------------------------------
> if AP is an IAP
>  then
>    check that the new position is valid
>    if the parentAP is not the same
>      then
>        get a new seqNumber
>        update the IAP with the new seqNumber
> 
>        for each IAP in the IAP descendant do
>          update the IAP with the new seqNumber
>        done
> 
> continue down the chain
> -------------------------------------------<<<

Agreed.


> +--------+
> |Subentry|
> +--------+
> Moving a subentry implies we update the old parentAP and the new one. Of 
> course, we have to check first that the changed AP are not inconsistent after 
> the change.
> 
> >>>-------------------------------------------
> get a new seqNumber
> 
> update the old parentAP with the seqNumber (and all the IAP descendants)
> update the new parentAP with the seqNumber (and all the IAP descendants)
> 
> continue down the chain
> 
> -------------------------------------------<<<

Agreed.


> +-----+
> |Entry|
> +-----+
> If we move en entry within the same area, we don't have anything to do except 
> if the entry is not up to date, and then we proceed as we do for a search 
> operation. Otherwise, we update the entry like if it was a add.
> This has to be done for each possible roles.
> 
> >>>-------------------------------------------
> for each role
>  get the old parentAP
>  get the new parentAP
> 
>  if the entry is not up to date
>    then update the entry
> done
> 
> continue down the chain
> -------------------------------------------<<<

I disagree.

Since the entry has moved, some subtree specifications of some subentries may 
not be matching anymore this entry.
Thus, I think we need to invalidate the previously run evaluations by removing 
all seqNumbers for all roles, forcing a re-evaluation of the entry next time.


> 
> 
> -- 
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
> 

Reply via email to