private/ConvertTo-GlySelector.ps1
|
function ConvertTo-GlySelector { param( [Parameter(Mandatory)] [object] $Selector ) $result = [GlySelector]::new() $kind = Get-GlyValue -InputObject $Selector -Name 'Kind' if ($null -ne $kind -and -not [string]::IsNullOrWhiteSpace([string] $kind)) { $kindText = [string] $kind if ($kindText -cnotin [GlyFileSystemKind].GetEnumNames()) { throw "Invalid selector Kind '$kindText'. Valid values: $([GlyFileSystemKind].GetEnumNames() -join ', ')." } $result.Kind = [GlyFileSystemKind] $kindText } $name = Get-GlyValue -InputObject $Selector -Name 'Name' if ($null -ne $name) { $result.Name = [string] $name } $extension = Get-GlyValue -InputObject $Selector -Name 'Extension' if ($null -ne $extension) { $result.Extension = [string[]] @($extension) } $glob = Get-GlyValue -InputObject $Selector -Name 'Glob' if ($null -ne $glob) { $result.Glob = [string[]] @($glob) } $attributes = Get-GlyValue -InputObject $Selector -Name 'Attributes' if ($null -ne $attributes) { try { $result.Attributes = [System.IO.FileAttributes[]] @($attributes) } catch { throw "Invalid selector Attributes value: $($_.Exception.Message)" } } return Initialize-GlySelector -Selector $result } |