Das nachfolgende Code-Snippet veranschaulicht die Implementierung für PDCConverter. Es ruft sämtliche Informationen für das 'Beispiel für Wohnsitz im Ausland' für eine Person/einen Anwärter aus der älteren Tabelle 'SampleForeignResidency' ab, konvertiert diese Informationen in die Struktur für dynamische Angabendaten und speichert dann die daraus hervorgehenden Informationen.
public class SampleForeignResidencyConverterImpl
implements PDCConverter {
@Inject
private EvidenceTypeDefDAO etDefDAO;
@Inject
private EvidenceTypeVersionDefDAO etVerDefDAO;
public void storeEvidence(ConcernRoleKey concernRoleKey, CaseIDKey caseIDKey)
throws AppException, InformationalException {
PDCCaseIDCaseParticipantRoleID pdcCaseIDCaseParticipantRoleID =
new PDCCaseIDCaseParticipantRoleID();
ParticipantDataCase participantDataCaseObj = ParticipantDataCaseFactory.newInstance();
pdcCaseIDCaseParticipantRoleID.caseID =
participantDataCaseObj.getParticipantDataCase(concernRoleKey).caseID;
CaseIDTypeCodeKey caseIDTypeCodeKey = new CaseIDTypeCodeKey();
caseIDTypeCodeKey.caseID = pdcCaseIDCaseParticipantRoleID.caseID;
caseIDTypeCodeKey.typeCode = CASEPARTICIPANTROLETYPE.PRIMARY;
pdcCaseIDCaseParticipantRoleID.caseParticipantRoleID =
CaseParticipantRoleFactory.newInstance().readByCaseIDAndTypeCode(caseIDTypeCodeKey).dtls.caseParticipantRoleID;
SampleForeignResidency sampleForeignResidencyObj = SampleForeignResidencyFactory.newInstance();
SampleForeignResidencyReadMultiKey sampleForeignResidencyReadMultiKey =
new SampleForeignResidencyReadMultiKey();
sampleForeignResidencyReadMultiKey.concernRoleID = concernRoleKey.concernRoleID;
SampleForeignResidencyReadMultiDtlsList sampleForeignResidencyList =
sampleForeignResidencyObj.searchByConcernRole(sampleForeignResidencyReadMultiKey);
for (SampleForeignResidencyReadMultiDtls sampleForeignResidencyReadMultiDtls : sampleForeignResidencyList.dtls) {
final EvidenceTypeKey eType = new EvidenceTypeKey();
eType.evidenceType = "SampleForeignResidency";
EvidenceTypeDef evidenceType =
etDefDAO.readActiveEvidenceTypeDefByTypeCode(eType.evidenceType);
EvidenceTypeVersionDef evTypeVersion =
etVerDefDAO.getActiveEvidenceTypeVersionAtDate(evidenceType, Date.getCurrentDate());
DynamicEvidenceDataDetails dynamicEvidenceDataDetails =
DynamicEvidenceDataDetailsFactory.newInstance(evTypeVersion);
DynamicEvidenceDataAttributeDetails participant =
dynamicEvidenceDataDetails.getAttribute("participant");
DynamicEvidenceTypeConverter.setAttribute(participant,
pdcCaseIDCaseParticipantRoleID.caseParticipantRoleID);
DynamicEvidenceDataAttributeDetails country =
dynamicEvidenceDataDetails.getAttribute("country");
DynamicEvidenceTypeConverter.setAttribute(country,
sampleForeignResidencyReadMultiDtls.countryCode);
DynamicEvidenceDataAttributeDetails fromDate =
dynamicEvidenceDataDetails.getAttribute("fromDate");
DynamicEvidenceTypeConverter.setAttribute(fromDate, sampleForeignResidencyReadMultiDtls.startDate);
DynamicEvidenceDataAttributeDetails endDate =
dynamicEvidenceDataDetails.getAttribute("toDate");
DynamicEvidenceTypeConverter.setAttribute(endDate, sampleForeignResidencyReadMultiDtls.endDate);
DynamicEvidenceDataAttributeDetails reasonCode =
dynamicEvidenceDataDetails.getAttribute("reason");
DynamicEvidenceTypeConverter.setAttribute(reasonCode, sampleForeignResidencyReadMultiDtls.reasonCode);
EvidenceControllerInterface evidenceControllerObj =
(EvidenceControllerInterface) EvidenceControllerFactory.newInstance();
EvidenceDescriptorInsertDtls evidenceDescriptorInsertDtls = new EvidenceDescriptorInsertDtls();
evidenceDescriptorInsertDtls.participantID = concernRoleKey.concernRoleID;
evidenceDescriptorInsertDtls.evidenceType = eType.evidenceType;
evidenceDescriptorInsertDtls.receivedDate = curam.util.type.Date.getCurrentDate();
evidenceDescriptorInsertDtls.caseID = pdcCaseIDCaseParticipantRoleID.caseID;
EIEvidenceInsertDtls eiEvidenceInsertDtls = new EIEvidenceInsertDtls();
eiEvidenceInsertDtls.descriptor.assign(evidenceDescriptorInsertDtls);
eiEvidenceInsertDtls.descriptor.participantID = concernRoleKey.concernRoleID;
eiEvidenceInsertDtls.descriptor.changeReason = EVIDENCECHANGEREASON.REPORTEDBYCLIENT;
eiEvidenceInsertDtls.evidenceObject = dynamicEvidenceDataDetails;
evidenceControllerObj.insertEvidence(eiEvidenceInsertDtls);
}
}
}