Applying Participant Evidence to all Cases

A new hook class ApplyChangesForEvidence has been added.

The new ApplyChangesForEvidence class represents a hook which can be overridden by custom code. The ApplyChangesForEvidence.isApplyChangesAutomatedForEvidence method is called from Evidence Controller to decide whether reassessment needs to be triggered when evidence is applied. The default implementation defaults to false and therefore the user will have to manually apply the changes on the associated cases. If the solutions wish to customize, the implementers should use ProductHookRegistrar.registerApplyChangesHooks method to add details of the hooks to use for applying changes. The static map attribute, applyChangesHookMap present in ProductHookManager class is used to store pairs of product type and the name of the class that implements the hook for that product type. The method ProductHookManager.getApplyChangesHook gets the implementation subclass of the ApplyChangesForEvidence class for the specified product type. The method EvidenceController.applyParticipantEvodence has been updated to obtain product delivery and product details for the case and then call ProducHookManager.getApplyChangesHook to obtain correct instance of the ApplyChangesForEvidence class for the given product.