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; }