package gw.account uses java.util.Date /** * Handles a field synced between a Person and a PolicyContactRole. * * Using a PersonToPolicyContactRoleSyncedField on a PolicyContactRole * that's associated with a Company is not indicative of a coding error * because the policy-level fields exist on the PolicyContactRole, even * if they don't exist on the contact. Thus, these fields special-case * the set and get field methods to set nothing, and return null if * the account entity is not a Person. */ @Export class PersonToPolicyContactRoleSyncedField extends ContactToPolicyContactRoleSyncedField { public static final var FirstName : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("FirstName") public static final var LastName : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("LastName") public static final var FirstNameKanji : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("FirstNameKanji") public static final var LastNameKanji : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("LastNameKanji") public static final var Particle : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("Particle") public static final var DateOfBirth : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("DateOfBirth") public static final var MaritalStatus : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("MaritalStatus") public static final var LicenseNumber : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("LicenseNumber") public static final var LicenseState : PersonToPolicyContactRoleSyncedField = new PersonToPolicyContactRoleSyncedField("LicenseState") construct(baseFieldName : String) { super(baseFieldName) } override function getAccountEntityFieldValue(accountSyncable : S) : T { if (isRoleOnPerson(accountSyncable)) { return super.getAccountEntityFieldValue(accountSyncable) } else { return null } } override function getPolicyEntityFieldValue(accountSyncable : S) : T { if (isRoleOnPerson(accountSyncable)) { return super.getPolicyEntityFieldValue(accountSyncable) } else { return null } } override function setAccountEntityFieldValue(accountSyncable : S, value : T) { if (isRoleOnPerson(accountSyncable)) { super.setAccountEntityFieldValue(accountSyncable, value) } } override function setPolicyEntityFieldValue(accountSyncable : S, value : T) { if (isRoleOnPerson(accountSyncable)) { super.setPolicyEntityFieldValue(accountSyncable, value) } } private function isRoleOnPerson(accountSyncable : S) : boolean { return getAccountEntity(accountSyncable) typeis Person } }