using System;
using System.Collections.Generic;
using Core.Common.Base;
using Ringtoets.Common.Data.FailureMechanism;
namespace Ringtoets.Common.Forms.PropertyClasses
{
///
/// Interface for an object that can properly handle data model changes due to a change of a
/// failure mechanism property.
///
public interface IFailureMechanismPropertyChangeHandler where T : IFailureMechanism
{
///
/// Checks to see if the change of the failure mechanism property should occur or not.
///
/// true if the change should occur, false otherwise.
bool ConfirmPropertyChange();
///
/// Propagates the necessary changes to underlying data structure when a property has
/// been changed for a failure mechanism.
///
/// The failure mechanism to be updated.
/// All objects that have been affected by the change.
/// Thrown when
/// is null.
IEnumerable PropertyChanged(T failureMechanism);
}
}