Here is the description of a Delete operation, and how it's handled by
the AdministrativePoint handler. The parts between >>>--- and ---<<< are
pseudo code.
Deleting an entry is somehow easier, as we don't update anything, except
when we delete a Subentry.
+--+
|AP|
+--+
We can't delete an AP if it has any child. So deleting an AP is a
straightforward operation : we just remove the AP, and update the AP cache.
>>>-------------------------------------------
check that the AP has no children
if the AP is an AAP
then
for each role do
remove the AP(role) from the AP(role) cache
done
else
remove the AP(role) from the AP(role) cache
remove the AP from the backend
-------------------------------------------<<<
+--------+
|Subentry|
+--------+
Removing a subentry is slightly more complex, as we will have to update
the associated AP SeqNumber, so that the entries part of the subtree can
be updated later.
>>>-------------------------------------------
get a new seqNumber
update the parentAP(role) with the new seqNumber
if the parentAP(role) is an IAP
then
update the parentAP(role) descendant with the new seqNumber
remove the subentry from the backend
-------------------------------------------<<<
+-----+
|Entry|
+-----+
Deleting an entry is a straightforward operation. Nothing has to be done
>>>-------------------------------------------
continue down the chain
-------------------------------------------<<<
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com