Глобальный рефакторинг пространств имён
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// Абстрактный аттрибут обработчика.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class AbstractProcessorAttribute(string name) : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Название обработчика.
|
||||
/// </summary>
|
||||
public string Name { get; } = name;
|
||||
|
||||
/// <summary>
|
||||
/// Описание обработчика.
|
||||
/// </summary>
|
||||
public string Description { get; init; } = name;
|
||||
|
||||
/// <summary>
|
||||
/// Группа обработчиков, к которому относится обработчик.
|
||||
/// </summary>
|
||||
public ProcessorGroupEnum Group { get; init; } = ProcessorGroupEnum.General;
|
||||
|
||||
/// <summary>
|
||||
/// Процессор включён по умолчанию.
|
||||
/// </summary>
|
||||
public bool Active { get; init; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Разрешить выполнять процессов в параллельном режиме
|
||||
/// </summary>
|
||||
public bool Parallel { get; init; } = false;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// Общий аттрибут обработчика.
|
||||
/// </summary>
|
||||
/// <param name="name">Название обработчика.</param>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class ProcessorAttribute(string name) : AbstractProcessorAttribute(name) { }
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// Аттрибут обработчика набор элементов.
|
||||
/// </summary>
|
||||
/// <param name="name">Название обработчика.</param>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class ProcessorCollectionAttribute(string name) : AbstractProcessorAttribute(name)
|
||||
{
|
||||
/// <summary>
|
||||
/// Название типов, который обрабатывает этот оброботчик.
|
||||
/// <c>null</c> - обработать все типы.
|
||||
/// </summary>
|
||||
public required string? InnerType { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Тип используемого компендиума.
|
||||
/// </summary>
|
||||
public required ProcessorCompendiumEnum CompendiumType { get; init; }
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// Аттрибут зависимостей обработчика.
|
||||
/// </summary>
|
||||
/// <param name="dependencies">Коллекция названий обработчиков, которые должны быть выполнены до этого оброботчика.</param>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class ProcessorDependenciesAttribute(string[] dependencies) : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Коллекция названий обработчиков, которые должны быть выполнены до этого оброботчика.
|
||||
/// </summary>
|
||||
public ICollection<string> Dependencies { get; } = dependencies;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
internal class ProcessorFactoryAttribute(string name) : AbstractProcessorAttribute(name)
|
||||
{
|
||||
/// <summary>
|
||||
/// Тип обрабатывающего процессора
|
||||
/// </summary>
|
||||
public required Type ProcessorType { get; init; }
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для групп обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorGroupEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Общий обработчик.
|
||||
/// </summary>
|
||||
[Description("Общие процессоры")]
|
||||
General,
|
||||
|
||||
/// <summary>
|
||||
/// Обработчик для подготовки данных с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
||||
/// </summary>
|
||||
[Description("Архивы Нефиса: Подготовка")]
|
||||
AonprdPreparation,
|
||||
|
||||
/// <summary>
|
||||
/// Обработчик основных сущностей с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
||||
/// </summary>
|
||||
[Description("Архивы Нефиса: Основные сущности")]
|
||||
AonprdEntities,
|
||||
|
||||
/// <summary>
|
||||
/// Обработчик подклассов с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
||||
/// </summary>
|
||||
[Description("Архивы Нефиса: Подклассы")]
|
||||
AonprdSubclasses,
|
||||
|
||||
/// <summary>
|
||||
/// Обработчик для завершения обработки данных с сайта <see href="https://aonprd.com/">Archives of Nethys Pathfinder 2e</see>.
|
||||
/// </summary>
|
||||
[Description("Архивы Нефиса: Завершение")]
|
||||
AonprdFinalization,
|
||||
|
||||
/// <summary>
|
||||
/// Обработчик для подготовки данных из модуля <see href="https://github.com/foundryvtt/pf2e">pf2e</see> для FoundryVTT.
|
||||
/// </summary>
|
||||
[Description("Foundry EN: Подготовка")]
|
||||
FoundryEnPreparation,
|
||||
|
||||
/// <summary>
|
||||
/// Обработчик основных сущностей из модуля <see href="https://github.com/foundryvtt/pf2e">pf2e</see> для FoundryVTT.
|
||||
/// </summary>
|
||||
[Description("Foundry EN: Основные сущности")]
|
||||
FoundryEnEntities,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для типов компендиумов обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorCompendiumEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Компедиум Архивов Нефиса.
|
||||
/// </summary>
|
||||
Aonprd,
|
||||
|
||||
/// <summary>
|
||||
/// Компедиум Foundry EN.
|
||||
/// </summary>
|
||||
FoundryEn,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для типов фабрик обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorFactoryTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Простая фабрика одиночного обработчика.
|
||||
/// </summary>
|
||||
Simple,
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания обработчиков, которые могут обрабатывать типы данных компедиума.
|
||||
/// </summary>
|
||||
Compendium,
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания обработчиков, которые могут обрабатывать итераторы данных.
|
||||
/// </summary>
|
||||
Iterator,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Расширение для перечисления <see cref="ProcessorGroupEnum"/>.
|
||||
/// </summary>
|
||||
public static class ProcessorGroupEnumExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Получает описание группы обработчика из атрибута <see cref="DescriptionAttribute"/>.
|
||||
/// </summary>
|
||||
/// <param name="group">Перечисление группы обработчика.</param>
|
||||
/// <returns>Строка с описанием группы обработчика.</returns>
|
||||
public static string GetDescription(this ProcessorGroupEnum group)
|
||||
{
|
||||
return group
|
||||
.GetType()
|
||||
.GetField(group.ToString())
|
||||
?.GetCustomAttribute<DescriptionAttribute>()
|
||||
?.Description ?? group.ToString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user