Option Strict On
Option Explicit On

Namespace Nexamas.UI.Localization

    ''' <summary>
    ''' Immutable preview of culture-aware number, currency, percent, and date formatting.
    ''' </summary>
    Friend NotInheritable Class MASLocalizationFormatSample
        Friend Sub New(cultureName As String,
                       numberSample As String,
                       currencySample As String,
                       percentSample As String,
                       dateSample As String)
            Me.CultureName = Normalize(cultureName)
            Me.NumberSample = Normalize(numberSample)
            Me.CurrencySample = Normalize(currencySample)
            Me.PercentSample = Normalize(percentSample)
            Me.DateSample = Normalize(dateSample)
        End Sub

        Friend ReadOnly Property CultureName As String
        Friend ReadOnly Property NumberSample As String
        Friend ReadOnly Property CurrencySample As String
        Friend ReadOnly Property PercentSample As String
        Friend ReadOnly Property DateSample As String

        Friend ReadOnly Property IsComplete As Boolean
            Get
                Return CultureName.Length > 0 AndAlso NumberSample.Length > 0 AndAlso CurrencySample.Length > 0 AndAlso PercentSample.Length > 0 AndAlso DateSample.Length > 0
            End Get
        End Property

        Private Shared Function Normalize(value As String) As String
            Return If(value, String.Empty).Trim()
        End Function
    End Class

End Namespace
