From 1213bf22331e1fa0aa844e88d5c83f2eb95f22c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Dec 2016 23:16:43 +0300 Subject: [PATCH] Refactored. --- src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs | 5 ++++- .../Abp/Modularity/IDependedModuleTypesProvider.cs | 2 ++ .../Volo/Abp/Modularity/IModuleLifecycleContributer.cs | 7 ++++--- src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs | 4 +++- src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs | 2 ++ src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs | 8 +++++++- .../Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs | 10 +++++++--- .../Volo/Abp/Modularity/PlugIns/IPlugInSource.cs | 5 +++-- .../Abp/Modularity/PlugIns/PlugInSourceExtensions.cs | 9 ++++++--- .../Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs | 6 ++++-- .../Modularity/PlugIns/PlugInSourceListExtensions.cs | 9 +++++++-- .../Abp/Modularity/PlugIns/PlugInTypeListSource.cs | 10 +++++----- 12 files changed, 54 insertions(+), 23 deletions(-) diff --git a/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs b/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs index 2a44b69492..aa71b4954b 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/DependsOnAttribute.cs @@ -1,4 +1,5 @@ using System; +using JetBrains.Annotations; namespace Volo.Abp.Modularity { @@ -12,6 +13,7 @@ namespace Volo.Abp.Modularity /// /// Types of depended modules. /// + [NotNull] public Type[] DependedModuleTypes { get; } /// @@ -20,9 +22,10 @@ namespace Volo.Abp.Modularity /// Types of depended modules public DependsOnAttribute(params Type[] dependedModuleTypes) { - DependedModuleTypes = dependedModuleTypes; + DependedModuleTypes = dependedModuleTypes ?? new Type[0]; } + [NotNull] public virtual Type[] GetDependedModuleTypes() { return DependedModuleTypes; diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs b/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs index 7e7424f544..fe6934ba67 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/IDependedModuleTypesProvider.cs @@ -1,9 +1,11 @@ using System; +using JetBrains.Annotations; namespace Volo.Abp.Modularity { public interface IDependedModuleTypesProvider { + [NotNull] Type[] GetDependedModuleTypes(); } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs index 7cb4f55077..a7e7dda674 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLifecycleContributer.cs @@ -1,11 +1,12 @@ -using Volo.DependencyInjection; +using JetBrains.Annotations; +using Volo.DependencyInjection; namespace Volo.Abp.Modularity { public interface IModuleLifecycleContributer : ISingletonDependency { - void Initialize(IAbpModule module); + void Initialize([NotNull] IAbpModule module); - void Shutdown(IAbpModule module); + void Shutdown([NotNull] IAbpModule module); } } diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs index 65a1d44b0e..7e31ffa6df 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleLoader.cs @@ -1,4 +1,5 @@ using System; +using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Modularity.PlugIns; @@ -6,6 +7,7 @@ namespace Volo.Abp.Modularity { public interface IModuleLoader { - AbpModuleDescriptor[] LoadModules(IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources); + [NotNull] + AbpModuleDescriptor[] LoadModules([NotNull] IServiceCollection services, [NotNull] Type startupModuleType, [NotNull] PlugInSourceList plugInSources); } } diff --git a/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs b/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs index b1de3ac201..d50ddc7611 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/IModuleManager.cs @@ -1,9 +1,11 @@ using System.Collections.Generic; +using JetBrains.Annotations; namespace Volo.Abp.Modularity { public interface IModuleManager { + [NotNull] IReadOnlyList Modules { get; } void InitializeModules(); diff --git a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs index 9893482bf4..5d5f5a691f 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/ModuleLoader.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Modularity.PlugIns; using Volo.ExtensionMethods.Collections.Generic; @@ -9,8 +10,13 @@ namespace Volo.Abp.Modularity { public class ModuleLoader : IModuleLoader { - public AbpModuleDescriptor[] LoadModules(IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources) + [NotNull] + public AbpModuleDescriptor[] LoadModules([NotNull] IServiceCollection services, [NotNull] Type startupModuleType, [NotNull] PlugInSourceList plugInSources) { + Check.NotNull(services, nameof(services)); + Check.NotNull(startupModuleType, nameof(startupModuleType)); + Check.NotNull(plugInSources, nameof(plugInSources)); + var modules = new List(); FillModules(modules, services, startupModuleType, plugInSources); diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs index 101cd1bff0..e0b22741ac 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/FolderPlugInSource.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using JetBrains.Annotations; using Volo.Abp.Reflection; using Volo.ExtensionMethods.Collections.Generic; @@ -12,13 +13,16 @@ namespace Volo.Abp.Modularity.PlugIns public SearchOption SearchOption { get; set; } - public FolderPlugInSource(string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly) + public FolderPlugInSource([NotNull] string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly) { + Check.NotNull(folder, nameof(folder)); + Folder = folder; SearchOption = searchOption; } - public List GetModules() + [NotNull] + public Type[] GetModules() { var modules = new List(); @@ -41,7 +45,7 @@ namespace Volo.Abp.Modularity.PlugIns } } - return modules; + return modules.ToArray(); } } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs index d5746e029c..9c51b1a990 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/IPlugInSource.cs @@ -1,10 +1,11 @@ using System; -using System.Collections.Generic; +using JetBrains.Annotations; namespace Volo.Abp.Modularity.PlugIns { public interface IPlugInSource { - List GetModules(); + [NotNull] + Type[] GetModules(); } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs index 7cd1556483..bf44f94605 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceExtensions.cs @@ -1,18 +1,21 @@ using System; -using System.Collections.Generic; using System.Linq; +using JetBrains.Annotations; namespace Volo.Abp.Modularity.PlugIns { public static class PlugInSourceExtensions { - public static List GetModulesWithAllDependencies(this IPlugInSource plugInSource) + [NotNull] + public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource) { + Check.NotNull(plugInSource, nameof(plugInSource)); + return plugInSource .GetModules() .SelectMany(AbpModuleHelper.FindAllModuleTypes) .Distinct() - .ToList(); + .ToArray(); } } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs index 6055298bd4..1e96e26e14 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceList.cs @@ -1,17 +1,19 @@ using System; using System.Collections.Generic; using System.Linq; +using JetBrains.Annotations; namespace Volo.Abp.Modularity.PlugIns { public class PlugInSourceList : List { - internal List GetAllModules() + [NotNull] + internal Type[] GetAllModules() { return this .SelectMany(pluginSource => pluginSource.GetModulesWithAllDependencies()) .Distinct() - .ToList(); + .ToArray(); } } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs index c5387f16f5..2dbf094b06 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInSourceListExtensions.cs @@ -1,17 +1,22 @@ using System; using System.IO; +using JetBrains.Annotations; namespace Volo.Abp.Modularity.PlugIns { public static class PlugInSourceListExtensions { - public static void AddFolder(this PlugInSourceList list, string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly) + public static void AddFolder([NotNull] this PlugInSourceList list, [NotNull] string folder, SearchOption searchOption = SearchOption.TopDirectoryOnly) { + Check.NotNull(list, nameof(list)); + list.Add(new FolderPlugInSource(folder, searchOption)); } - public static void AddTypes(this PlugInSourceList list, params Type[] moduleTypes) + public static void AddTypes([NotNull] this PlugInSourceList list, params Type[] moduleTypes) { + Check.NotNull(list, nameof(list)); + list.Add(new PlugInTypeListSource(moduleTypes)); } } diff --git a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs index ca09a6c306..59fed51bcd 100644 --- a/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs +++ b/src/Volo.Abp/Volo/Abp/Modularity/PlugIns/PlugInTypeListSource.cs @@ -1,6 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; +using JetBrains.Annotations; namespace Volo.Abp.Modularity.PlugIns { @@ -10,12 +9,13 @@ namespace Volo.Abp.Modularity.PlugIns public PlugInTypeListSource(params Type[] moduleTypes) { - _moduleTypes = moduleTypes; + _moduleTypes = moduleTypes ?? new Type[0]; } - public List GetModules() + [NotNull] + public Type[] GetModules() { - return _moduleTypes.ToList(); + return _moduleTypes; } } } \ No newline at end of file