Entity Enhancements are a unique feature of the Gosu language that allow developers to " inject " new methods and properties into existing entities. Because these enhancements often target Base Application Entities (like Claim, Policy, or Account), following architectural best practices is vital to avoid system conflicts.
The first key practice (Option A) is the use of the _Ext suffix for any new properties or methods added to a base entity. This is a defensive programming strategy. If Guidewire releases a future update that includes a new field with the same name as a custom one, the _Ext suffix prevents a naming collision that could break the application or cause database metadata errors. Note that this is generally required for extensions to base entities, rather than custom ones (which are already unique).
The second critical practice (Option F) relates to the physical location of the enhancement file. For the Gosu compiler to correctly associate an enhancement with its target entity, the enhancement must be placed in the same package as the entity it is enhancing. For example, if a developer is enhancing ABContact (which resides in gw.pc.contact), the enhancement file must also be placed in the gw.pc.contact package within the configuration module.
Regarding the other options: Option E is a common misconception; in Guidewire, an enhancement applied to a supertype (like Contact) is automatically available to all of its subtypes (like Person or Company). Option C is a violation of general programming safety, as enhancements should always be defensive and null-safe to prevent NullPointerExceptions during UI rendering or rule execution.
==========
Submit