The Standard Evidence Interface defines the following methods which are common to both inheriting interfaces. The interface and its associated methods are shown below with the appropriate javadoc comments:
/* * Copyright 2005-2006,2011 Curam Software Ltd. * All rights reserved. * * This software is the confidential and proprietary information * of Curam Software, Ltd. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Curam Software. */ package curam.core.sl.infrastructure.impl; import curam.core.sl.infrastructure.entity.struct .AttributedDateDetails; import curam.core.sl.infrastructure.struct.EIEvidenceKey; import curam.core.sl.infrastructure.struct.EIEvidenceKeyList; import curam.core.sl.infrastructure.struct.EIFieldsForListDisplayDtls; import curam.core.sl.infrastructure.struct.ValidateMode; import curam.core.struct.CaseKey; import curam.util.exception.AppException; import curam.util.exception.InformationalException; import curam.util.type.Date; /** * This interface is a key component of the Curam * Evidence Solution. Implementations hoping to manage evidence * via the Evidence Solution must ensure that the * evidence entities contained within the solution implement the * Evidence Interface. By doing this, the evidence is utilizing * the Evidence Controller pattern whereby a lot of the common * business functions for maintaining evidence are contained * within the out-of-the-box evidence infrastructure. * * This interface is the super interface that will be * extended by other evidence interfaces that wish to provide * custom functionality for that type of evidence. The methods * defined on this evidence are common to any interface that * extends it. */ public interface StandardEvidenceInterface { // ____________________________________________________________ /** * Method for calculating case attribution dates. The * calculation of evidence attribution is an integral part of a * evidence solution as it determines the period of * time for which a piece of evidence is effective. The * implementation of this function will contain the logic that * derives the appropriate effective period for the evidence of * a particular type. * * @param caseKey * Contains a case identifier * @param evKey * Contains the evidenceID / evidenceType pairing of * the evidence to be attributed * * @return Case attribution details */ AttributedDateDetails calcAttributionDatesForCase( CaseKey caseKey, EIEvidenceKey evKey) throws AppException, InformationalException; // ____________________________________________________________ /** * Retrieves a summary of evidence details which are used to * populate the 'Details' column on the following evidence * pages: * * - All evidence workspace pages * - Apply changes page * - Apply user changes page * - Approve page * - Reject page * * @param key * Contains an evidenceID / evidenceType pairing * * @return A summary of the evidence details to be displayed */ EIFieldsForListDisplayDtls getDetailsForListDisplay( EIEvidenceKey key) throws AppException, InformationalException; // ____________________________________________________________ /** * Method to get the business end date for this evidence * record. * * @param key * Contains an evidenceID / evidenceType pairing * * @return The end date for this evidence */ Date getEndDate(EIEvidenceKey evKey) throws AppException, InformationalException; // ____________________________________________________________ /** * Method to get the business start date for this evidence * record. * * @param key * Contains an evidenceID / evidenceType pairing * * @return The start date for this evidence */ Date getStartDate(EIEvidenceKey evKey) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for inserting case evidence. * * @param dtls * Custom evidence details to be inserted * @param parentKey * Contains the evidence type of the evidence being * inserted * * @return Contains the evidenceID / evidenceType of the * evidence inserted */ EIEvidenceKey insertEvidence( Object dtls, EIEvidenceKey parentKey) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for inserting case evidence on modification. An * insert on modification takes place when the record being * modified is 'Active'. * * @param dtls * Evidence details to be inserted * @param origKey * Contains the evidenceID / evidenceType pairing of * the evidence being modified * @param parentKey * Contains the evidence type of the evidence to be * inserted * * @return Contains the evidenceID / evidenceType of the * evidence inserted */ EIEvidenceKey insertEvidenceOnModify(Object dtls, EIEvidenceKey origKey, EIEvidenceKey parentKey) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for modifying case evidence. This function is called * when 'In Edit' evidence is being modified in place. * * @param key * Contains the evidenceID / evidenceType pairing of * the evidence to be modified * @param dtls * Modified evidence details */ void modifyEvidence(EIEvidenceKey key, Object dtls) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for retrieving all child evidence for a specified * parent * * @param key * Contains a parent evidenceID / evidenceType pairing * * @return List of all child evidence (evidenceID / * evidenceType pairings) for the specified parent */ EIEvidenceKeyList readAllByParentID(EIEvidenceKey key) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for reading case evidence. * * @param key * Contains the evidenceID / evidenceType pairing of * the evidence to be read * * @return Custom evidence details */ Object readEvidence(EIEvidenceKey key) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for retrieving the list of evidence to be used in * the validation procedure. This is based on the evidenceID / * evidenceType pairing passed into this function. * * If the input evidence key was that of parent evidence, then * this function should return the parent and its associated * 'Active' and 'In Edit' child evidence records, if they * exist. * * @param evKey * Contains the evidenceID / evidenceType pairing of * the evidence being "acted upon". * * @return List of evidenceID / evidenceType pairings to be * used in the validation procedure */ EIEvidenceKeyList selectForValidation(EIEvidenceKey evKey) throws AppException, InformationalException; // ____________________________________________________________ /** * Method for validating evidences based on the validate mode * setting. * * @param evKey * The evidenceID / evidenceType pairing of the * evidence being "acted upon" * @param evKeyList * The evidence hierarchy structure for the evKey * parameter. If the evKey identified the parent * evidence, the evKeyList may contain this parent and * its relevant children for validation purposes * * @param mode * The validation mode (insert, modify, * validateChanges,applyChanges) */ void validate(EIEvidenceKey evKey, EIEvidenceKeyList evKeyList, ValidateMode mode) throws AppException, InformationalException; }