Obfuscatable delegate

If you intend to use obfuscation with an entity, it must implement the Obfuscatable delegate. This delegate is necessary to support marking fields as personally identifiable information with the PersonalData tag.

Note: A Delegate is a reusable type that defines database columns, an interface, and a default implementation of that interface. A delegate permits an entity to implement an interface while delegating the implementation of that interface to another class, that of the delegate. Each delegate type provides additional columns on the affected tables.

The Obfuscatable delegate has one column, ObfuscatedInternal, which cannot be set in Gosu code. This limitation exists because after the ObfuscatedInternal column has been set to true, it must not be set to false.

Note: If the parent of an entity implements the Obfuscatable delegate, all child entities inherit that implementation.

The Obfuscatable delegate extends the interfaces Obfuscator and ObfuscatablePublicMethods. These interfaces provide the following methods:

markAsObfuscated
Marks the entity instance as having been obfuscated by setting ObfuscateInternal to true on the delegate.
isObfuscated
Returns true if obfuscate has been called and completed successfully. Otherwise returns false.
obfuscate
Obfuscates the columns that are marked for obfuscation on this object.
obfuscateSimple
Works the same as obfuscate, but for objects that are not EffDated.