Browse Source

Enable nullable annotations for Volo.Abp.VirtualFileSystem

pull/17020/head
liangshiwei 3 years ago
parent
commit
92e690fb28
  1. 2
      framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs
  2. 2
      framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj
  3. 6
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs
  4. 4
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs
  5. 9
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs
  6. 6
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs
  7. 4
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs
  8. 2
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs
  9. 10
      framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs

2
framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs

@ -84,7 +84,7 @@ public static class AbpFileInfoExtensions
} }
} }
public static string GetVirtualOrPhysicalPathOrNull([NotNull] this IFileInfo fileInfo) public static string? GetVirtualOrPhysicalPathOrNull([NotNull] this IFileInfo fileInfo)
{ {
Check.NotNull(fileInfo, nameof(fileInfo)); Check.NotNull(fileInfo, nameof(fileInfo));

2
framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.VirtualFileSystem</AssemblyName> <AssemblyName>Volo.Abp.VirtualFileSystem</AssemblyName>
<PackageId>Volo.Abp.VirtualFileSystem</PackageId> <PackageId>Volo.Abp.VirtualFileSystem</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

6
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs

@ -9,11 +9,11 @@ public abstract class DictionaryBasedFileProvider : IFileProvider
{ {
protected abstract IDictionary<string, IFileInfo> Files { get; } protected abstract IDictionary<string, IFileInfo> Files { get; }
public virtual IFileInfo GetFileInfo(string subpath) public virtual IFileInfo GetFileInfo(string? subpath)
{ {
if (subpath == null) if (subpath == null)
{ {
return new NotFoundFileInfo(subpath); return new NotFoundFileInfo(subpath!);
} }
var file = Files.GetOrDefault(NormalizePath(subpath)); var file = Files.GetOrDefault(NormalizePath(subpath));
@ -40,7 +40,7 @@ public abstract class DictionaryBasedFileProvider : IFileProvider
foreach (var fileInfo in Files.Values) foreach (var fileInfo in Files.Values)
{ {
var fullPath = fileInfo.GetVirtualOrPhysicalPathOrNull(); var fullPath = fileInfo.GetVirtualOrPhysicalPathOrNull();
if (!fullPath.StartsWith(directoryPath)) if (fullPath == null || !fullPath.StartsWith(directoryPath))
{ {
continue; continue;
} }

4
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs

@ -32,8 +32,8 @@ public class DynamicFileProvider : DictionaryBasedFileProvider, IDynamicFileProv
public void AddOrUpdate(IFileInfo fileInfo) public void AddOrUpdate(IFileInfo fileInfo)
{ {
var filePath = fileInfo.GetVirtualOrPhysicalPathOrNull(); var filePath = fileInfo.GetVirtualOrPhysicalPathOrNull();
DynamicFiles.AddOrUpdate(filePath, fileInfo, (key, value) => fileInfo); DynamicFiles.AddOrUpdate(filePath!, fileInfo, (key, value) => fileInfo);
ReportChange(filePath); ReportChange(filePath!);
} }
public bool Delete(string filePath) public bool Delete(string filePath)

9
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs

@ -13,15 +13,14 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider
[NotNull] [NotNull]
public Assembly Assembly { get; } public Assembly Assembly { get; }
[CanBeNull] public string? BaseNamespace { get; }
public string BaseNamespace { get; }
protected override IDictionary<string, IFileInfo> Files => _files.Value; protected override IDictionary<string, IFileInfo> Files => _files.Value;
private readonly Lazy<Dictionary<string, IFileInfo>> _files; private readonly Lazy<Dictionary<string, IFileInfo>> _files;
public AbpEmbeddedFileProvider( public AbpEmbeddedFileProvider(
[NotNull] Assembly assembly, [NotNull] Assembly assembly,
[CanBeNull] string baseNamespace = null) string? baseNamespace = null)
{ {
Check.NotNull(assembly, nameof(assembly)); Check.NotNull(assembly, nameof(assembly));
@ -40,7 +39,7 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider
foreach (var resourcePath in Assembly.GetManifestResourceNames()) foreach (var resourcePath in Assembly.GetManifestResourceNames())
{ {
if (!BaseNamespace.IsNullOrEmpty() && !resourcePath.StartsWith(BaseNamespace)) if (!BaseNamespace.IsNullOrEmpty() && !resourcePath.StartsWith(BaseNamespace!))
{ {
continue; continue;
} }
@ -106,7 +105,7 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider
{ {
if (!BaseNamespace.IsNullOrEmpty()) if (!BaseNamespace.IsNullOrEmpty())
{ {
resourceName = resourceName.Substring(BaseNamespace.Length + 1); resourceName = resourceName.Substring(BaseNamespace!.Length + 1);
} }
var pathParts = resourceName.Split('.'); var pathParts = resourceName.Split('.');

6
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs

@ -18,7 +18,7 @@ public class EmbeddedResourceFileInfo : IFileInfo
{ {
using (var stream = _assembly.GetManifestResourceStream(_resourcePath)) using (var stream = _assembly.GetManifestResourceStream(_resourcePath))
{ {
_length = stream.Length; _length = stream!.Length;
} }
} }
@ -27,7 +27,7 @@ public class EmbeddedResourceFileInfo : IFileInfo
} }
private long? _length; private long? _length;
public string PhysicalPath => null; public string? PhysicalPath => null;
public string VirtualPath { get; } public string VirtualPath { get; }
@ -68,7 +68,7 @@ public class EmbeddedResourceFileInfo : IFileInfo
_length = stream.Length; _length = stream.Length;
} }
return stream; return stream!;
} }
public override string ToString() public override string ToString()

4
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs

@ -7,12 +7,12 @@ public class EmbeddedVirtualFileSetInfo : VirtualFileSetInfo
{ {
public Assembly Assembly { get; } public Assembly Assembly { get; }
public string BaseFolder { get; } public string? BaseFolder { get; }
public EmbeddedVirtualFileSetInfo( public EmbeddedVirtualFileSetInfo(
IFileProvider fileProvider, IFileProvider fileProvider,
Assembly assembly, Assembly assembly,
string baseFolder = null) string? baseFolder = null)
: base(fileProvider) : base(fileProvider)
{ {
Assembly = assembly; Assembly = assembly;

2
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs

@ -10,7 +10,7 @@ public class InMemoryFileInfo : IFileInfo
public long Length => _fileContent.Length; public long Length => _fileContent.Length;
public string PhysicalPath => null; public string? PhysicalPath => null;
public string Name { get; } public string Name { get; }

10
framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs

@ -13,8 +13,8 @@ public static class VirtualFileSetListExtensions
{ {
public static void AddEmbedded<T>( public static void AddEmbedded<T>(
[NotNull] this VirtualFileSetList list, [NotNull] this VirtualFileSetList list,
[CanBeNull] string baseNamespace = null, string? baseNamespace = null,
[CanBeNull] string baseFolder = null) string? baseFolder = null)
{ {
Check.NotNull(list, nameof(list)); Check.NotNull(list, nameof(list));
@ -42,8 +42,8 @@ public static class VirtualFileSetListExtensions
private static IFileProvider CreateFileProvider( private static IFileProvider CreateFileProvider(
[NotNull] Assembly assembly, [NotNull] Assembly assembly,
[CanBeNull] string baseNamespace = null, string? baseNamespace = null,
[CanBeNull] string baseFolder = null) string? baseFolder = null)
{ {
Check.NotNull(assembly, nameof(assembly)); Check.NotNull(assembly, nameof(assembly));
@ -80,7 +80,7 @@ public static class VirtualFileSetListExtensions
if (!embeddedVirtualFileSet.BaseFolder.IsNullOrEmpty()) if (!embeddedVirtualFileSet.BaseFolder.IsNullOrEmpty())
{ {
thisPath = Path.Combine(thisPath, embeddedVirtualFileSet.BaseFolder); thisPath = Path.Combine(thisPath, embeddedVirtualFileSet.BaseFolder!);
} }
fileSets[i] = new PhysicalVirtualFileSetInfo(new PhysicalFileProvider(thisPath), thisPath); fileSets[i] = new PhysicalVirtualFileSetInfo(new PhysicalFileProvider(thisPath), thisPath);

Loading…
Cancel
Save