첫 번째 단계는 증거 유형에 대해 관련 기본 핸들러 인터페이스를 구현하고 기본 레코드를 식별하는 새 구현을 제공하는 것입니다. 아래의 코드 스니펫은 PDCPrimaryPhoneNumberHandler에 대한 구현을 보여줍니다. 이 스니펫은 단순히 최신 시작 날짜가 있는 전화번호를 선택하고 기본 레코드로 설정합니다.
public class SamplePrimaryPhoneNumberHandlerImpl
implements PDCPrimaryPhoneNumberHandler {
protected SamplePrimaryPhoneNumberHandlerImpl() {
}
public void setPrimaryPhoneNumber(EvidenceDescriptorDtls evidenceDescriptorDtls)
throws AppException, InformationalException {
ConcernRoleKey concernRoleKey = new ConcernRoleKey();
concernRoleKey.concernRoleID = evidenceDescriptorDtls.participantID;
ConcernRolePhoneNumberDtlsList concernRolePhoneNumberDtlsList =
ConcernRolePhoneNumberFactory.newInstance().searchByConcernRole(concernRoleKey);
ConcernRole concernRoleObj = ConcernRoleFactory.newInstance();
ConcernRoleDtls concernRoleDtls = concernRoleObj.read(concernRoleKey);
Date currentPrimaryPhoneNumberStartDate = Date.kZeroDate;
List<SampleSortedPhoneNumber> list = new ArrayList<SampleSortedPhoneNumber>();
for (ConcernRolePhoneNumberDtls concernRolePhoneNumberDtls:concernRolePhoneNumberDtlsList.dtls) {
PhoneNumberKey phoneNumberKey = new PhoneNumberKey();
phoneNumberKey.phoneNumberID = concernRolePhoneNumberDtls.phoneNumberID;
if (concernRolePhoneNumberDtls.phoneNumberID == concernRoleDtls.primaryPhoneNumberID) {
currentPrimaryPhoneNumberStartDate = concernRolePhoneNumberDtls.startDate;
}
SampleSortedPhoneNumber sampleSortedPhoneNumber =
new SampleSortedPhoneNumber(concernRolePhoneNumberDtls);
list.add(sampleSortedPhoneNumber);
}
Collections.sort(list);
SampleSortedPhoneNumber newPrimaryPhoneNumber = list.get(0);
if (newPrimaryPhoneNumber.getStartDate().after(currentPrimaryPhoneNumberStartDate)) {
concernRoleDtls.primaryPhoneNumberID = newPrimaryPhoneNumber.getPhoneNumberID();
concernRoleObj.pdcModify(concernRoleKey, concernRoleDtls);
}
}
class SampleSortedPhoneNumber implements Comparable<SampleSortedPhoneNumber> {
private long phoneNumberID;
private Date startDate;
SampleSortedPhoneNumber(ConcernRolePhoneNumberDtls dtls) {
this.phoneNumberID = dtls.phoneNumberID;
this.startDate = dtls.startDate;
}
public long getPhoneNumberID() {
return phoneNumberID;
}
public Date getStartDate() {
return startDate;
}
public int compareTo(SampleSortedPhoneNumber o) {
return o.getStartDate().compareTo(this.getStartDate());
}
}
}