Option Strict On
Option Explicit On

Namespace Nexamas.UI.Virtualization

    ''' <summary>
    ''' Decision emitted by MASVirtualizationAutoInvalidationCoordinator. It records whether the measurement cache was invalidated
    ''' and why, so consumers and tests can prove cache refreshes are automatic rather than manually scattered through controls.
    ''' </summary>
    Friend NotInheritable Class MASVirtualizationInvalidationDecision

        Friend Sub New(invalidated As Boolean,
                       reason As MASVirtualizationInvalidationReason,
                       previousStamp As MASVirtualizationEnvironmentStamp,
                       currentStamp As MASVirtualizationEnvironmentStamp)
            Me.Invalidated = invalidated
            Me.Reason = reason
            Me.PreviousStamp = previousStamp
            Me.CurrentStamp = If(currentStamp, MASVirtualizationEnvironmentStamp.Empty)
        End Sub

        Friend ReadOnly Property Invalidated As Boolean
        Friend ReadOnly Property Reason As MASVirtualizationInvalidationReason
        Friend ReadOnly Property PreviousStamp As MASVirtualizationEnvironmentStamp
        Friend ReadOnly Property CurrentStamp As MASVirtualizationEnvironmentStamp

    End Class

End Namespace
