Step 1: Provide a Populator Implementation

The first step is to provide a new implementation that implements the relevant populator interface for the evidence type and converts the custom field from the legacy table to dynamic evidence. The code snippet below demonstrates the custom implementation for the PDCPhoneNumberEvidencePopulator, it simply converts the phoneProvider struct attribute to the dynamic evidence equivalent attribute. This dynamic evidence will then be stored along with the other dynamic evidence attributes via the default converter implementation.

public class SamplePopulatorImpl 
  implements PDCPhoneNumberEvidencePopulator {

  public void populate(
    ConcernRoleKey concernRoleKey, CaseIDKey caseIDKey,
    ConcernRolePhoneNumberDtls concernRolePhoneNumberDtls,
    PhoneNumberDtls phoneNumberDtls,
    DynamicEvidenceDataDetails dynamicEvidenceDataDetails)
    throws AppException, InformationalException {

    DynamicEvidenceDataAttributeDetails phoneProvider = 
      dynamicEvidenceDataDetails.getAttribute("phoneProvider");

    DynamicEvidenceTypeConverter.setAttribute(phoneProvider,
      phoneNumberDtls.phoneProvider);
  }
}