Skip to content

Commit 3b31e72

Browse files
authored
Code Quality: Appended Legacy to the existing storable implementations (#16509)
1 parent 195be1f commit 3b31e72

File tree

11 files changed

+58
-76
lines changed

11 files changed

+58
-76
lines changed

src/Files.App.Storage/Storables/NativeStorage/NativeFile.cs renamed to src/Files.App.Storage/Storables/NativeStorageLegacy/NativeFile.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
namespace Files.App.Storage.Storables
77
{
88
/// <inheritdoc cref="IFile"/>
9-
public class NativeFile : NativeStorable<FileInfo>, ILocatableFile, IModifiableFile, IFileExtended, INestedFile
9+
[Obsolete("Use the new WindowsStorable")]
10+
public class NativeFileLegacy : NativeStorableLegacy<FileInfo>, ILocatableFile, IModifiableFile, IFileExtended, INestedFile
1011
{
11-
public NativeFile(FileInfo fileInfo, string? name = null)
12+
public NativeFileLegacy(FileInfo fileInfo, string? name = null)
1213
: base(fileInfo, name)
1314
{
1415
}
1516

16-
public NativeFile(string path, string? name = null)
17+
public NativeFileLegacy(string path, string? name = null)
1718
: this(new FileInfo(path), name)
1819
{
1920
}

src/Files.App.Storage/Storables/NativeStorage/NativeFolder.cs renamed to src/Files.App.Storage/Storables/NativeStorageLegacy/NativeFolder.cs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@
77
namespace Files.App.Storage.Storables
88
{
99
/// <inheritdoc cref="IFolder"/>
10-
public class NativeFolder : NativeStorable<DirectoryInfo>, ILocatableFolder, IModifiableFolder, IMutableFolder, IFolderExtended, INestedFolder, IDirectCopy, IDirectMove
10+
[Obsolete("Use the new WindowsStorable")]
11+
public class NativeFolderLegacy : NativeStorableLegacy<DirectoryInfo>, ILocatableFolder, IModifiableFolder, IMutableFolder, IFolderExtended, INestedFolder, IDirectCopy, IDirectMove
1112
{
12-
public NativeFolder(DirectoryInfo directoryInfo, string? name = null)
13+
public NativeFolderLegacy(DirectoryInfo directoryInfo, string? name = null)
1314
: base(directoryInfo, name)
1415
{
1516
}
1617

17-
public NativeFolder(string path, string? name = null)
18+
public NativeFolderLegacy(string path, string? name = null)
1819
: this(new DirectoryInfo(path), name)
1920
{
2021
}
@@ -27,7 +28,7 @@ public virtual Task<INestedFile> GetFileAsync(string fileName, CancellationToken
2728
if (!File.Exists(path))
2829
throw new FileNotFoundException();
2930

30-
return Task.FromResult<INestedFile>(new NativeFile(path));
31+
return Task.FromResult<INestedFile>(new NativeFileLegacy(path));
3132
}
3233

3334
/// <inheritdoc/>
@@ -37,7 +38,7 @@ public virtual Task<INestedFolder> GetFolderAsync(string folderName, Cancellatio
3738
if (!Directory.Exists(path))
3839
throw new FileNotFoundException();
3940

40-
return Task.FromResult<INestedFolder>(new NativeFolder(path));
41+
return Task.FromResult<INestedFolder>(new NativeFolderLegacy(path));
4142
}
4243

4344
/// <inheritdoc/>
@@ -46,21 +47,21 @@ public virtual async IAsyncEnumerable<INestedStorable> GetItemsAsync(StorableKin
4647
if (kind == StorableKind.Files)
4748
{
4849
foreach (var item in Directory.EnumerateFiles(Path))
49-
yield return new NativeFile(item);
50+
yield return new NativeFileLegacy(item);
5051
}
5152
else if (kind == StorableKind.Folders)
5253
{
5354
foreach (var item in Directory.EnumerateDirectories(Path))
54-
yield return new NativeFolder(item);
55+
yield return new NativeFolderLegacy(item);
5556
}
5657
else
5758
{
5859
foreach (var item in Directory.EnumerateFileSystemEntries(Path))
5960
{
6061
if (File.Exists(item))
61-
yield return new NativeFile(item);
62+
yield return new NativeFileLegacy(item);
6263
else
63-
yield return new NativeFolder(item);
64+
yield return new NativeFolderLegacy(item);
6465
}
6566
}
6667

@@ -96,7 +97,7 @@ public virtual async Task<INestedStorable> CreateCopyOfAsync(INestedStorable ite
9697
var newPath = System.IO.Path.Combine(Path, itemToCopy.Name);
9798
File.Copy(sourceLocatableFile.Path, newPath, overwrite);
9899

99-
return new NativeFile(newPath);
100+
return new NativeFileLegacy(newPath);
100101
}
101102

102103
var copiedFile = await CreateFileAsync(itemToCopy.Name, overwrite, cancellationToken);
@@ -124,7 +125,7 @@ public virtual async Task<INestedStorable> MoveFromAsync(INestedStorable itemToM
124125
var newPath = System.IO.Path.Combine(Path, itemToMove.Name);
125126
File.Move(sourceLocatableFile.Path, newPath, overwrite);
126127

127-
return new NativeFile(newPath);
128+
return new NativeFileLegacy(newPath);
128129
}
129130
else
130131
{
@@ -150,7 +151,7 @@ public virtual async Task<INestedFile> CreateFileAsync(string desiredName, bool
150151
if (overwrite || !File.Exists(path))
151152
await File.Create(path).DisposeAsync();
152153

153-
return new NativeFile(path);
154+
return new NativeFileLegacy(path);
154155
}
155156

156157
/// <inheritdoc/>
@@ -161,7 +162,7 @@ public virtual Task<INestedFolder> CreateFolderAsync(string desiredName, bool ov
161162
Directory.Delete(path, true);
162163

163164
_ = Directory.CreateDirectory(path);
164-
return Task.FromResult<INestedFolder>(new NativeFolder(path));
165+
return Task.FromResult<INestedFolder>(new NativeFolderLegacy(path));
165166
}
166167
}
167168
}

src/Files.App.Storage/Storables/NativeStorage/NativeStorable.cs renamed to src/Files.App.Storage/Storables/NativeStorageLegacy/NativeStorable.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
namespace Files.App.Storage.Storables
77
{
88
/// <inheritdoc cref="IStorable"/>
9-
public abstract class NativeStorable<TStorage> : ILocatableStorable, INestedStorable
9+
[Obsolete("Use the new WindowsStorable")]
10+
public abstract class NativeStorableLegacy<TStorage> : ILocatableStorable, INestedStorable
1011
where TStorage : FileSystemInfo
1112
{
1213
protected readonly TStorage storage;
@@ -20,7 +21,7 @@ public abstract class NativeStorable<TStorage> : ILocatableStorable, INestedStor
2021
/// <inheritdoc/>
2122
public virtual string Id { get; }
2223

23-
protected NativeStorable(TStorage storage, string? name = null)
24+
protected NativeStorableLegacy(TStorage storage, string? name = null)
2425
{
2526
this.storage = storage;
2627
Path = storage.FullName;
@@ -35,7 +36,7 @@ protected NativeStorable(TStorage storage, string? name = null)
3536
if (parent is null)
3637
return Task.FromResult<IFolder?>(null);
3738

38-
return Task.FromResult<IFolder?>(new NativeFolder(parent));
39+
return Task.FromResult<IFolder?>(new NativeFolderLegacy(parent));
3940
}
4041

4142
/// <summary>

src/Files.App.Storage/Storables/NativeStorage/NativeStorageService.cs renamed to src/Files.App.Storage/Storables/NativeStorageLegacy/NativeStorageService.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@
88
namespace Files.App.Storage.Storables
99
{
1010
/// <inheritdoc cref="IStorageService"/>
11-
public sealed class NativeStorageService : IStorageService
11+
[Obsolete("Use the new WindowsStorable")]
12+
public sealed class NativeStorageLegacyService : IStorageService
1213
{
1314
/// <inheritdoc/>
1415
public Task<IFile> GetFileAsync(string id, CancellationToken cancellationToken = default)
1516
{
1617
if (!File.Exists(id))
1718
throw new FileNotFoundException();
1819

19-
return Task.FromResult<IFile>(new NativeFile(id));
20+
return Task.FromResult<IFile>(new NativeFileLegacy(id));
2021
}
2122

2223
/// <inheritdoc/>
@@ -29,10 +30,10 @@ public async Task<IFolder> GetFolderAsync(string id, CancellationToken cancellat
2930
if (PathHelpers.IsSpecialFolder(id))
3031
{
3132
var storageFolder = await TryGetStorageFolderAsync(id);
32-
return new NativeFolder(id, storageFolder?.DisplayName);
33+
return new NativeFolderLegacy(id, storageFolder?.DisplayName);
3334
}
3435

35-
return new NativeFolder(id);
36+
return new NativeFolderLegacy(id);
3637

3738
async Task<StorageFolder?> TryGetStorageFolderAsync(string path)
3839
{

src/Files.App.Storage/Storables/WindowsStorage/WindowsStorageService.cs

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/Files.App.Storage/Storables/WindowsStorage/WindowsStorable.cs renamed to src/Files.App.Storage/Storables/WindowsStorageLegacy/WindowsStorable.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
namespace Files.App.Storage.Storables
88
{
99
/// <inheritdoc cref="IStorable"/>
10-
public abstract class WindowsStorable<TStorage> : ILocatableStorable, INestedStorable
10+
[Obsolete("Use the new WindowsStorable")]
11+
public abstract class WindowsStorableLegacy<TStorage> : ILocatableStorable, INestedStorable
1112
where TStorage : class, IStorageItem
1213
{
1314
private string? _computedId;
@@ -22,7 +23,7 @@ public abstract class WindowsStorable<TStorage> : ILocatableStorable, INestedSto
2223
/// <inheritdoc/>
2324
public virtual string Id => _computedId ??= ChecksumHelpers.CalculateChecksumForPath(Path);
2425

25-
protected internal WindowsStorable(TStorage storage)
26+
protected internal WindowsStorableLegacy(TStorage storage)
2627
{
2728
this.storage = storage;
2829
Path = storage.Path;

src/Files.App.Storage/Storables/WindowsStorage/WindowsStorageFile.cs renamed to src/Files.App.Storage/Storables/WindowsStorageLegacy/WindowsStorageFile.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
namespace Files.App.Storage.Storables
88
{
99
/// <inheritdoc cref="IFile"/>
10-
public sealed class WindowsStorageFile : WindowsStorable<StorageFile>, ILocatableFile, IModifiableFile, IFileExtended, INestedFile
10+
[Obsolete("Use the new WindowsStorable")]
11+
public sealed class WindowsStorageFileLegacy : WindowsStorableLegacy<StorageFile>, ILocatableFile, IModifiableFile, IFileExtended, INestedFile
1112
{
12-
public WindowsStorageFile(StorageFile storage)
13+
public WindowsStorageFileLegacy(StorageFile storage)
1314
: base(storage)
1415
{
1516
}
@@ -38,7 +39,7 @@ public async Task<Stream> OpenStreamAsync(FileAccess access, FileShare share = F
3839
var parentFolderTask = storage.GetParentAsync().AsTask(cancellationToken);
3940
var parentFolder = await parentFolderTask;
4041

41-
return new WindowsStorageFolder(parentFolder);
42+
return new WindowsStorageFolderLegacy(parentFolder);
4243
}
4344

4445
private static FileAccessMode GetFileAccessMode(FileAccess access)

src/Files.App.Storage/Storables/WindowsStorage/WindowsStorageFolder.cs renamed to src/Files.App.Storage/Storables/WindowsStorageLegacy/WindowsStorageFolder.cs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77
namespace Files.App.Storage.Storables
88
{
99
/// <inheritdoc cref="IFolder"/>
10-
public sealed class WindowsStorageFolder : WindowsStorable<StorageFolder>, ILocatableFolder, IFolderExtended, INestedFolder, IDirectCopy, IDirectMove
10+
[Obsolete("Use the new WindowsStorable")]
11+
public sealed class WindowsStorageFolderLegacy : WindowsStorableLegacy<StorageFolder>, ILocatableFolder, IFolderExtended, INestedFolder, IDirectCopy, IDirectMove
1112
{
1213
// TODO: Implement IMutableFolder
1314

14-
public WindowsStorageFolder(StorageFolder storage)
15+
public WindowsStorageFolderLegacy(StorageFolder storage)
1516
: base(storage)
1617
{
1718
}
@@ -20,14 +21,14 @@ public WindowsStorageFolder(StorageFolder storage)
2021
public async Task<INestedFile> GetFileAsync(string fileName, CancellationToken cancellationToken = default)
2122
{
2223
var file = await storage.GetFileAsync(fileName).AsTask(cancellationToken);
23-
return new WindowsStorageFile(file);
24+
return new WindowsStorageFileLegacy(file);
2425
}
2526

2627
/// <inheritdoc/>
2728
public async Task<INestedFolder> GetFolderAsync(string folderName, CancellationToken cancellationToken = default)
2829
{
2930
var folder = await storage.GetFolderAsync(folderName).AsTask(cancellationToken);
30-
return new WindowsStorageFolder(folder);
31+
return new WindowsStorageFolderLegacy(folder);
3132
}
3233

3334
/// <inheritdoc/>
@@ -40,7 +41,7 @@ public async IAsyncEnumerable<INestedStorable> GetItemsAsync(StorableKind kind =
4041
var files = await storage.GetFilesAsync().AsTask(cancellationToken);
4142
foreach (var item in files)
4243
{
43-
yield return new WindowsStorageFile(item);
44+
yield return new WindowsStorageFileLegacy(item);
4445
}
4546

4647
break;
@@ -51,7 +52,7 @@ public async IAsyncEnumerable<INestedStorable> GetItemsAsync(StorableKind kind =
5152
var folders = await storage.GetFoldersAsync().AsTask(cancellationToken);
5253
foreach (var item in folders)
5354
{
54-
yield return new WindowsStorageFolder(item);
55+
yield return new WindowsStorageFolderLegacy(item);
5556
}
5657

5758
break;
@@ -63,10 +64,10 @@ public async IAsyncEnumerable<INestedStorable> GetItemsAsync(StorableKind kind =
6364
foreach (var item in items)
6465
{
6566
if (item is StorageFile storageFile)
66-
yield return new WindowsStorageFile(storageFile);
67+
yield return new WindowsStorageFileLegacy(storageFile);
6768

6869
if (item is StorageFolder storageFolder)
69-
yield return new WindowsStorageFolder(storageFolder);
70+
yield return new WindowsStorageFolderLegacy(storageFolder);
7071
}
7172

7273
break;
@@ -82,11 +83,11 @@ public Task DeleteAsync(INestedStorable item, bool permanently = default, Cancel
8283
{
8384
return item switch
8485
{
85-
WindowsStorable<StorageFile> storageFile => storageFile.storage
86+
WindowsStorableLegacy<StorageFile> storageFile => storageFile.storage
8687
.DeleteAsync(GetWindowsStorageDeleteOption(permanently))
8788
.AsTask(cancellationToken),
8889

89-
WindowsStorable<StorageFolder> storageFolder => storageFolder.storage
90+
WindowsStorableLegacy<StorageFolder> storageFolder => storageFolder.storage
9091
.DeleteAsync(GetWindowsStorageDeleteOption(permanently))
9192
.AsTask(cancellationToken),
9293

@@ -97,10 +98,10 @@ public Task DeleteAsync(INestedStorable item, bool permanently = default, Cancel
9798
/// <inheritdoc/>
9899
public async Task<INestedStorable> CreateCopyOfAsync(INestedStorable itemToCopy, bool overwrite = default, CancellationToken cancellationToken = default)
99100
{
100-
if (itemToCopy is WindowsStorable<StorageFile> sourceFile)
101+
if (itemToCopy is WindowsStorableLegacy<StorageFile> sourceFile)
101102
{
102103
var copiedFile = await sourceFile.storage.CopyAsync(storage, itemToCopy.Name, GetWindowsNameCollisionOption(overwrite)).AsTask(cancellationToken);
103-
return new WindowsStorageFile(copiedFile);
104+
return new WindowsStorageFileLegacy(copiedFile);
104105
}
105106

106107
throw new ArgumentException($"Could not copy type {itemToCopy.GetType()}");
@@ -109,10 +110,10 @@ public async Task<INestedStorable> CreateCopyOfAsync(INestedStorable itemToCopy,
109110
/// <inheritdoc/>
110111
public async Task<INestedStorable> MoveFromAsync(INestedStorable itemToMove, IModifiableFolder source, bool overwrite = default, CancellationToken cancellationToken = default)
111112
{
112-
if (itemToMove is WindowsStorable<StorageFile> sourceFile)
113+
if (itemToMove is WindowsStorableLegacy<StorageFile> sourceFile)
113114
{
114115
await sourceFile.storage.MoveAsync(storage, itemToMove.Name, GetWindowsNameCollisionOption(overwrite)).AsTask(cancellationToken);
115-
return new WindowsStorageFile(sourceFile.storage);
116+
return new WindowsStorageFileLegacy(sourceFile.storage);
116117
}
117118

118119
throw new ArgumentException($"Could not copy type {itemToMove.GetType()}");
@@ -122,21 +123,21 @@ public async Task<INestedStorable> MoveFromAsync(INestedStorable itemToMove, IMo
122123
public async Task<INestedFile> CreateFileAsync(string desiredName, bool overwrite = default, CancellationToken cancellationToken = default)
123124
{
124125
var file = await storage.CreateFileAsync(desiredName, GetWindowsCreationCollisionOption(overwrite)).AsTask(cancellationToken);
125-
return new WindowsStorageFile(file);
126+
return new WindowsStorageFileLegacy(file);
126127
}
127128

128129
/// <inheritdoc/>
129130
public async Task<INestedFolder> CreateFolderAsync(string desiredName, bool overwrite = default, CancellationToken cancellationToken = default)
130131
{
131132
var folder = await storage.CreateFolderAsync(desiredName, GetWindowsCreationCollisionOption(overwrite)).AsTask(cancellationToken);
132-
return new WindowsStorageFolder(folder);
133+
return new WindowsStorageFolderLegacy(folder);
133134
}
134135

135136
/// <inheritdoc/>
136137
public override async Task<IFolder?> GetParentAsync(CancellationToken cancellationToken = default)
137138
{
138139
var parentFolder = await storage.GetParentAsync().AsTask(cancellationToken);
139-
return new WindowsStorageFolder(parentFolder);
140+
return new WindowsStorageFolderLegacy(parentFolder);
140141
}
141142

142143
private static StorageDeleteOption GetWindowsStorageDeleteOption(bool permanently)

0 commit comments

Comments
 (0)