복제자 구현은 이전 절에 설명된 세 가지 메소드에 대한 구현을 제공해야 합니다. 이러한 메소드는 동적 증거 데이터를 레거시 데이터베이스 테이블에 기록하는 데 적절한 데이터로 변환하고 이 증거 유형에 대해 레거시 테이블을 업데이트해야 합니다.
public class SampleForeignResidencyReplicatorImpl
implements SampleForeignResidencyReplicator {
protected SampleForeignResidencyReplicatorImpl() {
}
public void replicateInsertEvidence(
final EvidenceDescriptorDtls evidenceDescriptorDtls)
throws AppException, InformationalException {
SampleForeignResidency sampleForeignResidencyObj =
SampleForeignResidencyFactory.newInstance();
SampleForeignResidencyDtls sampleForeignResidencyDtls =
new SampleForeignResidencyDtls();
UniqueID uniqueIDObj = UniqueIDFactory.newInstance();
EvidenceControllerInterface evidenceControllerObj =
(EvidenceControllerInterface) EvidenceControllerFactory.newInstance();
EIEvidenceKey eiEvidenceKey = new EIEvidenceKey();
eiEvidenceKey.evidenceID = evidenceDescriptorDtls.relatedID;
eiEvidenceKey.evidenceType = evidenceDescriptorDtls.evidenceType;
EIEvidenceReadDtls eiEvidenceReadDtls =
evidenceControllerObj.readEvidence(eiEvidenceKey);
DynamicEvidenceDataDetails dynamicEvidenceDataDetails =
(DynamicEvidenceDataDetails) eiEvidenceReadDtls.evidenceObject;
sampleForeignResidencyDtls.countryCode =
dynamicEvidenceDataDetails.getAttribute("country").getValue();
sampleForeignResidencyDtls.startDate =
(Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("fromDate"));
sampleForeignResidencyDtls.endDate =
(Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("toDate"));
sampleForeignResidencyDtls.reasonCode =
dynamicEvidenceDataDetails.getAttribute("reason").getValue();
sampleForeignResidencyDtls.concernRoleID = evidenceDescriptorDtls.participantID;
sampleForeignResidencyDtls.foreignResidencyID = uniqueIDObj.getNextID();
sampleForeignResidencyDtls.statusCode = RECORDSTATUS.NORMAL;
sampleForeignResidencyObj.insert(sampleForeignResidencyDtls);
}
public void replicateModifyEvidence(
final EvidenceDescriptorDtls evidenceDescriptorDtls,
final EvidenceDescriptorDtls previousActiveEvidDescriptorDtls)
throws AppException, InformationalException {
List<SampleForeignResidencyKey> sampleForeignResidencyKeyList =
new ArrayList<SampleForeignResidencyKey>();
SampleForeignResidencyDtls sampleForeignResidencyDtls =
new SampleForeignResidencyDtls();
EvidenceControllerInterface evidenceControllerObj =
(EvidenceControllerInterface) EvidenceControllerFactory.newInstance();
EIEvidenceKey eiEvidenceKey = new EIEvidenceKey();
eiEvidenceKey.evidenceID = previousActiveEvidDescriptorDtls.relatedID;
eiEvidenceKey.evidenceType = previousActiveEvidDescriptorDtls.evidenceType;
EIEvidenceReadDtls eiEvidenceReadDtls =
evidenceControllerObj.readEvidence(eiEvidenceKey);
DynamicEvidenceDataDetails dynamicEvidenceDataDetails =
(DynamicEvidenceDataDetails) eiEvidenceReadDtls.evidenceObject;
sampleForeignResidencyDtls.countryCode =
dynamicEvidenceDataDetails.getAttribute("country").getValue();
sampleForeignResidencyDtls.startDate =
(Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("fromDate"));
sampleForeignResidencyDtls.endDate =
(Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("toDate"));
sampleForeignResidencyDtls.reasonCode =
dynamicEvidenceDataDetails.getAttribute("reason").getValue();
SampleForeignResidency sampleForeignResidencyObj =
SampleForeignResidencyFactory.newInstance();
SampleForeignResidencyReadMultiKey sampleForeignResidencyReadMultiKey =
new SampleForeignResidencyReadMultiKey();
sampleForeignResidencyReadMultiKey.concernRoleID =
previousActiveEvidDescriptorDtls.participantID;
SampleForeignResidencyReadMultiDtlsList sampleForeignResidencyReadMultiDtlsList =
sampleForeignResidencyObj.searchByConcernRole(sampleForeignResidencyReadMultiKey);
for (SampleForeignResidencyReadMultiDtls sampleForeignResidencyReadMultiDtls :
sampleForeignResidencyReadMultiDtlsList.dtls) {
if ((sampleForeignResidencyReadMultiDtls.countryCode.equals(
sampleForeignResidencyDtls.countryCode))
&& (sampleForeignResidencyReadMultiDtls.reasonCode.equals(
sampleForeignResidencyDtls.reasonCode))) {
SampleForeignResidencyKey sampleForeignResidencyKey = new SampleForeignResidencyKey();
sampleForeignResidencyKey.sampleForeignResidencyID =
sampleForeignResidencyReadMultiDtls.sampleForeignResidencyID;
sampleForeignResidencyKeyList.add(sampleForeignResidencyKey);
}
}
for (SampleForeignResidencyKey sampleForeignResidencyKey : sampleForeignResidencyKeyList) {
sampleForeignResidencyDtls = new SampleForeignResidencyDtls();
eiEvidenceKey = new EIEvidenceKey();
eiEvidenceKey.evidenceID = evidenceDescriptorDtls.relatedID;
eiEvidenceKey.evidenceType = evidenceDescriptorDtls.evidenceType;
eiEvidenceReadDtls = evidenceControllerObj.readEvidence(eiEvidenceKey);
dynamicEvidenceDataDetails =
(DynamicEvidenceDataDetails) eiEvidenceReadDtls.evidenceObject;
sampleForeignResidencyDtls.countryCode =
dynamicEvidenceDataDetails.getAttribute("country").getValue();
sampleForeignResidencyDtls.startDate = (Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("fromDate"));
sampleForeignResidencyDtls.endDate = (Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("toDate"));
sampleForeignResidencyDtls.reasonCode =
dynamicEvidenceDataDetails.getAttribute("reason").getValue();
sampleForeignResidencyDtls.concernRoleID = evidenceDescriptorDtls.participantID;
SampleForeignResidencyDtls sampleForeignResidencyReadDtls =
sampleForeignResidencyObj.read(sampleForeignResidencyKey);
sampleForeignResidencyReadDtls.assign(sampleForeignResidencyDtls);
sampleForeignResidencyObj.modify(sampleForeignResidencyKey, sampleForeignResidencyReadDtls);
}
}
public void replicateRemoveEvidence(
final EvidenceDescriptorDtls evidenceDescriptorDtls)
throws AppException, InformationalException {
List<SampleForeignResidencyKey> sampleForeignResidencyKeyList =
new ArrayList<SampleForeignResidencyKey>();
SampleForeignResidencyDtls sampleForeignResidencyDtls =
new SampleForeignResidencyDtls();
EvidenceControllerInterface evidenceControllerObj =
(EvidenceControllerInterface) EvidenceControllerFactory.newInstance();
EIEvidenceKey eiEvidenceKey = new EIEvidenceKey();
eiEvidenceKey.evidenceID = evidenceDescriptorDtls.relatedID;
eiEvidenceKey.evidenceType = evidenceDescriptorDtls.evidenceType;
EIEvidenceReadDtls eiEvidenceReadDtls =
evidenceControllerObj.readEvidence(eiEvidenceKey);
DynamicEvidenceDataDetails dynamicEvidenceDataDetails =
(DynamicEvidenceDataDetails) eiEvidenceReadDtls.evidenceObject;
sampleForeignResidencyDtls.countryCode =
dynamicEvidenceDataDetails.getAttribute("country").getValue();
sampleForeignResidencyDtls.startDate =
(Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("fromDate"));
sampleForeignResidencyDtls.endDate =
(Date) DynamicEvidenceTypeConverter.convert(
dynamicEvidenceDataDetails.getAttribute("toDate"));
sampleForeignResidencyDtls.reasonCode =
dynamicEvidenceDataDetails.getAttribute("reason").getValue();
SampleForeignResidency sampleForeignResidencyObj =
SampleForeignResidencyFactory.newInstance();
SampleForeignResidencyReadMultiKey sampleForeignResidencyReadMultiKey =
new SampleForeignResidencyReadMultiKey();
sampleForeignResidencyReadMultiKey.concernRoleID =
evidenceDescriptorDtls.participantID;
SampleForeignResidencyReadMultiDtlsList sampleForeignResidencyReadMultiDtlsList =
sampleForeignResidencyObj.searchByConcernRole(sampleForeignResidencyReadMultiKey);
for (SampleForeignResidencyReadMultiDtls sampleForeignResidencyReadMultiDtls :
sampleForeignResidencyReadMultiDtlsList.dtls) {
if ((sampleForeignResidencyReadMultiDtls.countryCode.equals(
sampleForeignResidencyDtls.countryCode))
&& (sampleForeignResidencyReadMultiDtls.reasonCode.equals(
sampleForeignResidencyDtls.reasonCode))) {
SampleForeignResidencyKey sampleForeignResidencyKey = new SampleForeignResidencyKey();
sampleForeignResidencyKey.sampleForeignResidencyID =
sampleForeignResidencyReadMultiDtls.sampleForeignResidencyID;
sampleForeignResidencyKeyList.add(sampleForeignResidencyKey);
}
}
for (SampleForeignResidencyKey sampleForeignResidencyKey : sampleForeignResidencyKeyList) {
sampleForeignResidencyDtls = sampleForeignResidencyObj.read(sampleForeignResidencyKey);
sampleForeignResidencyDtls.statusCode = RECORDSTATUS.CANCELLED;
sampleForeignResidencyObj.modify(sampleForeignResidencyKey, sampleForeignResidencyDtls);
}
}
}