Option Strict On
Option Explicit On

Imports System

Namespace Nexamas.UI.FileSystem

    Friend NotInheritable Class FileSystemEntry

        Friend Property Name As String = String.Empty
        Friend Property FullPath As String = String.Empty
        Friend Property EntryType As FileSystemEntryType = FileSystemEntryType.FileItem

        Friend Property Extension As String = String.Empty
        Friend Property SizeBytes As Long = 0

        Friend Property CreatedUtc As DateTime = DateTime.MinValue
        Friend Property ModifiedUtc As DateTime = DateTime.MinValue

        Friend Property IsHidden As Boolean = False
        Friend Property IsReadOnly As Boolean = False

        Friend ReadOnly Property IsFile As Boolean
            Get
                Return EntryType = FileSystemEntryType.FileItem
            End Get
        End Property

        Friend ReadOnly Property IsFolderLike As Boolean
            Get
                Select Case EntryType
                    Case FileSystemEntryType.Folder,
                 FileSystemEntryType.Drive,
                 FileSystemEntryType.Special,
                 FileSystemEntryType.Computer,
                 FileSystemEntryType.RecycleBin,
                 FileSystemEntryType.ControlPanel,
                 FileSystemEntryType.Network,
                 FileSystemEntryType.UserProfile,
                 FileSystemEntryType.Desktop,
                 FileSystemEntryType.Documents,
                 FileSystemEntryType.Downloads

                        Return True
                End Select

                Return False
            End Get
        End Property

        Public Overrides Function ToString() As String
            Return Name
        End Function

    End Class

End Namespace