public static IFileSystemItem CreateItem(FileSystemItemKind kind, string name) { if (!validKinds.Contains(kind)) { throw new ArgumentOutOfRangeException(nameof(kind), kind, "File system item kind is invalid."); } return(CreateItemInternal(kind, name)); }
protected XPathItem( Initializer initializer, FileSystem fs, FileSystemItemKind kind, NormalizedPath fullPath) : base(initializer) { FileSystem = fs; Kind = kind; FullPath = fullPath; initializer.ChildServices.Add(this); }
public static WorkspaceItemKindEnum ToWorkspaceItemKind(this FileSystemItemKind fileSystemItemKind) { switch (fileSystemItemKind) { case FileSystemItemKind.RootFolder: return(WorkspaceItemKindEnum.RootFolder); case FileSystemItemKind.Folder: return(WorkspaceItemKindEnum.Folder); case FileSystemItemKind.File: return(WorkspaceItemKindEnum.File); case FileSystemItemKind.InputStream: return(WorkspaceItemKindEnum.InputStream); default: throw new InvalidOperationException($"Unknown FileSystemItemKind value {fileSystemItemKind}"); } }
/// <summary> /// Constructor /// </summary> /// <param name="kind">Item Kind</param> /// <param name="name">Item Name</param> /// <exception cref="ArgumentOutOfRangeException">Throws if the kind is incorrect</exception> /// <exception cref="ArgumentNullException">Throws if the name is null</exception> /// <exception cref="ArgumentException">Throws if the name is empty</exception> internal FileSystemItem( FileSystemItemKind kind, string name, IReadOnlyCollection <FileSystemItemKind> validParentKinds, IReadOnlyCollection <FileSystemItemKind> validChildKinds, string validParentKindsMessage, string validChildKindsMessage ) { this.Kind = kind; this.Name = name; this.validParentKinds = validParentKinds; this.validChildKinds = validChildKinds; this.validParentKindsMessage = validParentKindsMessage; this.validChildKindsMessage = validChildKindsMessage; this.childItems = new FileSystemItemChildItemSet(this); }
private static IFileSystemItem CreateItemInternal(FileSystemItemKind kind, string name) { if (name is null) { throw new ArgumentNullException(nameof(name)); } if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentException(Invariant($"{nameof(name)} is empty."), nameof(name)); } itemNameValidators[kind](name); return(new FileSystemItem( kind, name, validParentKinds[kind], validChildKinds[kind], validParentKindsMessage[kind], validChildKindsMessage[kind] )); }