Extending a delegate object

Note: A Delegate data object is a reusable entity that contains an interface and a default implementation of that interface. See <delegate> elements and related data object types for more information.

Typically, you extend existing delegate objects to provide additional fields and behaviors on the delegate. Through extension, you can add the following to a delegate object in Guidewire PolicyCenter:

  • <column>
  • <foreignkey>
  • <description>
  • <implementsEntity>
  • <implementsInterface>
  • <index>
  • <typekey>

You cannot remove base delegate fields. However, you can modify them to a certain extent—for example, by making an optional field non-nullable (but not the reverse). You cannot replace the requires attribute on the base delegate (which specifies the required adapter), but you can implement other delegates.

In Guidewire PolicyCenter, you can extend the following base configuration delegates:

  • Auditable
  • Cost
  • Coverable
  • Coverage
  • Exclusion
  • Modifiable
  • Modifier
  • PCAssignable
  • PolicyCondition
  • RateFactor
  • Transaction
  • UWIssueDelegate
Note: In addition to these application-specific delegates, you can extend the following system delegate: AddressAutofillable.

You can extend a delegate only if the base configuration definition file for that delegate contains the following:

extendable="true"

The default for the extendable attribute on <delegate> is false. Therefore, if it is not set explicitly to true in the delegate definition file, you cannot extend that delegate.

Do not attempt to change the graph to which a Guidewire base entity belongs through extension. In other words, do not attempt to change the delegate that a Guidewire base entity implements through an extension entity using <implementsEntity>. PolicyCenter generates an error if you attempt to do so.

Extend a delegate object

  1. Navigate to configuration > config > Extensions > Entity.
  2. Right-click and select New > Entity Extension.
  3. Enter the name of the delegate that you want to extend and add the .etx extension. Studio opens an empty file.
  4. Enter the delegate definition in the delegate extension file. If necessary, find an existing delegate file and use it as a model for the syntax. For details, see Creating a new delegate object.