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 >
