The facade operation calls the evidence service layer implementation.
// __________________________________________________________
/**
* Creates an Asset evidence record.
*
* @param dtls Details of the new evidence record to be created.
*
* @return The details of the created record.
*/
public ReturnEvidenceDetails createAssetEvidence(
AssetEvidenceDetails dtls)
throws AppException, InformationalException {
// set the informational manager for the transaction
TransactionInfo.setInformationalManager();
// Asset evidence manipulation object
Asset evidenceObj = AssetFactory.newInstance();
// return object
ReturnEvidenceDetails createdEvidenceDetails =
new ReturnEvidenceDetails();
// create the Asset record and populate the return details
createdEvidenceDetails =
evidenceObj.createAssetEvidence(dtls);
createdEvidenceDetails.warnings =
EvidenceControllerFactory.newInstance().getWarnings();
return createdEvidenceDetails;
}
These overloaded service layer operations call the Evidence Controller infrastructure function for inserting evidence.
// __________________________________________________________
/**
* Creates a Asset record.
*
* @param dtls Contains Asset evidence record creation details.
*
* @return the new evidence ID and warnings.
*/
public ReturnEvidenceDetails createAssetEvidence(
AssetEvidenceDetails dtls)
throws AppException,InformationalException {
return createAssetEvidence(dtls, null, null, false);
}
// __________________________________________________________
/**
* Creates a Asset record.
*
* @param dtls Contains Asset evidence record creation details.
*
* @param sourceEvidenceDescriptorDtls If this function is called
* during evidence sharing, this parameter will be non-null and
* it represents the header of the evidence record being shared
* (i.e. the source evidence record)
*
* @param targetCase If this function is called during evidence
* sharing, this parameter will be non-null and it represents the
* case the evidence is being shared with.
*
* @param sharingInd A flag to determine if the function is
* called in evidence sharing mode. If false, the function is
* being called as part of a regular create.
*
* @return the new evidence ID and warnings.
*/
public ReturnEvidenceDetails createAssetEvidence(
AssetEvidenceDetails dtls,
EvidenceDescriptorDtls sourceEvidenceDescriptorDtls,
CaseHeaderDtls targetCase, boolean sharingInd)
throws AppException,InformationalException {
// validate the mandatory fields
validateMandatoryDetails(dtls);
EvidenceControllerInterface evidenceControllerObj =
(EvidenceControllerInterface)
EvidenceControllerFactory.newInstance();
EvidenceDescriptorInsertDtls evidenceDescriptorInsertDtls =
new EvidenceDescriptorInsertDtls();
ReturnEvidenceDetails createdEvidence =
new ReturnEvidenceDetails();
if (sharingInd) {
EvidenceDescriptorDtls sharedDescriptorDtls =
evidenceControllerObj.shareEvidence(
sourceEvidenceDescriptorDtls,
targetCase);
// Return the evidence ID and warnings
createdEvidence.evidenceKey.evidenceID =
sharedDescriptorDtls.relatedID;
createdEvidence.evidenceKey.evType =
sharedDescriptorDtls.evidenceType;
} else {
// As there is no participant associated with this evidence
// we must retrieve the case participant to set the evidence
// descriptor participant.
CaseHeaderKey caseHeaderKey = new CaseHeaderKey();
caseHeaderKey.caseID = dtls.caseIDKey.caseID;
evidenceDescriptorInsertDtls.participantID =
CaseHeaderFactory.newInstance().readCaseParticipantDetails(
caseHeaderKey).concernRoleID;
// Evidence descriptor details
evidenceDescriptorInsertDtls.caseID = dtls.caseIDKey.caseID;
evidenceDescriptorInsertDtls.evidenceType =
CASEEVIDENCE.ASSET;
evidenceDescriptorInsertDtls.receivedDate =
dtls.descriptor.receivedDate;
// Upon creation, the change reason should be Initial
evidenceDescriptorInsertDtls.changeReason =
EVIDENCECHANGEREASON.INITIAL;
// Evidence Interface details
EIEvidenceInsertDtls eiEvidenceInsertDtls =
new EIEvidenceInsertDtls();
eiEvidenceInsertDtls.descriptor.assign(
evidenceDescriptorInsertDtls);
eiEvidenceInsertDtls.evidenceObject = dtls.dtls;
// Insert the evidence
EIEvidenceKey eiEvidenceKey =
evidenceControllerObj.insertEvidence(eiEvidenceInsertDtls);
// Return the evidence ID and warnings
createdEvidence.evidenceKey.evidenceID =
eiEvidenceKey.evidenceID;
createdEvidence.evidenceKey.evType =
eiEvidenceKey.evidenceType;
createdEvidence.warnings =
evidenceControllerObj.getWarnings();
}
return createdEvidence;
}