DestructionRootPinnable delegate
An entity that implements this delegate gets
a Do Not Destroy flag that can be checked as part of the destruction
process. An entity that is intended to be the root of an entity graph
must implement the DestructionRootPinnable
delegate if it is to be used in personal data destruction.
Root of entity graph
The destruction process
uses entity domain graphs to determine what to destroy. An object that
implements the DestructionRootPinnable
delegate and the RootInfo
delegate is the root of an entity domain graph.
Do Not Destroy flag
A Do Not Destroy flag is provided in the DestructionRootPinnable delegate. If an
entity implements this delegate, instances of the entity have a
DoNotDestroy
Boolean field. The default value of this field is
false.
In the base configuration of PolicyCenter, the entities Contact,
Account, Policy, PolicyTerm, and
PolicyPeriod all implement the
DestructionRootPinnable delegate and therefore have
DoNotDestroy
Boolean fields.
You can set this field in an instance of any of these entities, such as a specific contact or policy, by using the method setDoNotDestroy. The method takes the following parameters:
Booleanvalue- Set the flag to
falseto allow destruction of the entity, or totrueto prevent destruction of the entity. Callable<String>getDescription- A block
that returns either a
Stringto be used as a history event comment ornull.
PolicyCenter checks this flag as part of the destruction process. For example:
- If DoNotDestroy is set to
truefor the contact, the associated accounts, policies, and policy periods are not destroyed. - The contact
specified in a personal data destruction request has two accounts, and
only one of the accounts has DoNotDestroy
set to
true. The other account has DoNotDestroy set tofalse. PolicyCenter does a partial purge and deletes the account that has DoNotDestroy set tofalse.
