org.electrocodeogram.cpc.core.api.provider.notification
Interface INotificationEvaluationProvider

All Superinterfaces:
IProvider

public interface INotificationEvaluationProvider
extends IProvider

A notification evaluation provider is used to determine whether a specific clone modification should trigger a user notification/warning or whether it should be ignored.
The INotificationEvaluationProvider interface is implemented by all notification evaluation providers.

Like all providers, this implementation in itself is passive. Usually the plugin which provides the implementation will also provide some harness code which listens for CloneModificationEvents and delegates the evaluation of each modified clone to this provider. The IEvaluationResult of the provider is then used by the harness code to update the clone data accordingly.

Author:
vw

Method Summary
 IEvaluationResult evaluateModification(IClone modifiedClone, java.util.List<IClone> groupMembers, boolean initialEvaluation)
          Takes an IClone instance which was recently modified by the user and a list of all members of its ICloneGroup and evaluates how the modification should be handled.
 
Methods inherited from interface org.electrocodeogram.cpc.core.api.provider.IProvider
getProviderName, toString
 

Method Detail

evaluateModification

IEvaluationResult evaluateModification(IClone modifiedClone,
                                       java.util.List<IClone> groupMembers,
                                       boolean initialEvaluation)
Takes an IClone instance which was recently modified by the user and a list of all members of its ICloneGroup and evaluates how the modification should be handled.

A notification evaluation provider may internally acquire additional information from other sources, if needed. I.e. from the registered store provider.

Parameters:
modifiedClone - the clone which was modified, never null. Data on the modifications made since the last notification check are attached to the clone as an ICloneModificationHistoryExtension object, if this is the initial evaluation of the clone. For re-evaluations the modification history is empty. The clone itself is guaranteed to be a member of a non-empty clone group.
groupMembers - a list of all members of modifiedClone's clone group, modifiedClone itself is also part of the list, may be NULL. If this is NULL, the implementation will internally acquire the clone group data from the IStoreProvider.
initialEvaluation - true if this is the first time this modification is evaluated. Typically this is set to true when the modification is first seen as an CloneModificationEvent and set to false for later re-evaluations due to (delayed) CloneNotificationEvents.
Returns:
the IEvaluationResult for this modification, never null.
See Also:
IEvaluationResult