예제 #1
0
 /// <summary>
 /// Creates a <see cref="RelativePath"/> instance from a relative
 /// path string (e.g. "foo\\bar\\blah.txt").
 /// </summary>
 public RelativePath(string relativePath)
 {
     Invariants.CheckArgumentNotNull(relativePath, nameof(relativePath));
     Invariants.CheckArgument(!PathHelpers.IsAbsolutePath(relativePath), nameof(relativePath), "Path must be relative.");
     // Empty string is the same as the empty relative path
     _relativePath = relativePath == "" ? null : relativePath;
 }
예제 #2
0
 public FileName(DirectoryName parent, string name)
 {
     Invariants.CheckArgumentNotNull(parent, nameof(parent));
     Invariants.CheckArgumentNotNull(name, nameof(name), "File name is empty");
     Invariants.CheckArgument(PathHelpers.IsFileName(name), nameof(name), "File name contains one or more directory separator");
     _parent = parent;
     _name   = name;
 }
예제 #3
0
 public RelativeDirectoryName(DirectoryName parent, string name)
 {
     Invariants.CheckArgumentNotNull(parent, nameof(parent));
     Invariants.CheckArgumentNotNull(name, nameof(name), "Directory name is empty");
     Invariants.CheckArgument(PathHelpers.IsFileName(name), nameof(name), "Directory name contains one or more directory separator");
     _parent   = parent;
     _name     = name;
     _hashCode = HashCode.Combine(_parent.GetHashCode(), SystemPathComparer.GetHashCode(_name));
 }
예제 #4
0
        public static FullPath GetProjectPath(this NodeViewModel node)
        {
            Invariants.CheckArgumentNotNull(node, nameof(node));

            for (; node != null; node = node.Parent)
            {
                if (node is RootNodeViewModel)
                {
                    return(node.FullPath);
                }
            }

            throw Invariants.Fail("Unable to determine project path of node");
        }
예제 #5
0
        public SlimHashTable(Func <TValue, TKey> keyProvider, int capacity, IEqualityComparer <TKey> comparer, ICollectionGrowthPolicy growthPolicy)
        {
            Invariants.CheckArgumentNotNull(keyProvider, nameof(keyProvider));
            Invariants.CheckArgument(capacity >= 0, nameof(capacity), "Capacity must be positive");
            Invariants.CheckArgumentNotNull(comparer, nameof(comparer));
            Invariants.CheckArgumentNotNull(growthPolicy, nameof(growthPolicy));

            _getKey       = keyProvider;
            _capacity     = capacity;
            _comparer     = comparer;
            _growthPolicy = growthPolicy;

            var length = GetPrimeLength(capacity);

            Initialize(length);
        }
예제 #6
0
 public FileNodeViewModel(NodeViewModel parent) : base(parent)
 {
     Invariants.CheckArgumentNotNull(parent, nameof(parent));
 }