From 791349686bb2494a36c4f80052354b9819bfecc2 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Fri, 25 Apr 2025 22:00:09 +0300 Subject: [PATCH] chore: removed unused classes --- .../Converters/EntityConverter.cs | 133 ------------------ .../Converters/EntityFinder.cs | 60 -------- .../Converters/EntityReference.cs | 12 -- .../Converters/EntityReferenceConverter.cs | 36 ----- .../Converters/TypeContainer.cs | 10 -- .../Converters/TypeContainerConverter.cs | 27 ---- 6 files changed, 278 deletions(-) delete mode 100644 Engine.Serialization/Converters/EntityConverter.cs delete mode 100644 Engine.Serialization/Converters/EntityFinder.cs delete mode 100644 Engine.Serialization/Converters/EntityReference.cs delete mode 100644 Engine.Serialization/Converters/EntityReferenceConverter.cs delete mode 100644 Engine.Serialization/Converters/TypeContainer.cs delete mode 100644 Engine.Serialization/Converters/TypeContainerConverter.cs diff --git a/Engine.Serialization/Converters/EntityConverter.cs b/Engine.Serialization/Converters/EntityConverter.cs deleted file mode 100644 index 1924436..0000000 --- a/Engine.Serialization/Converters/EntityConverter.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System.Collections; -using System.Reflection; -using Syntriax.Engine.Core; -using Syntriax.Engine.Core.Factory; - -using YamlDotNet.Core; -using YamlDotNet.Core.Events; -using YamlDotNet.Serialization; - -namespace Syntriax.Engine.Serialization; - -public class EntityConverter(IReadOnlyDictionary entities) : IYamlTypeConverter -{ - private readonly IReadOnlyDictionary Entities = entities; - private readonly HashSet entitiesVisited = []; - - public bool Accepts(Type type) => typeof(IEntity).IsAssignableFrom(type); - - public object? ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) - { - parser.Consume(); - - TypeContainer typeContainer = (TypeContainer)rootDeserializer(typeof(TypeContainer))!; - - object instance = TypeFactory.Get(typeContainer.Type); - - while (!parser.TryConsume(out _)) - { - string key = parser.Consume().Value; - - if (type.GetField(key, BindingFlags.Instance | BindingFlags.NonPublic) is FieldInfo fieldInfo) - { - object? fieldValue = rootDeserializer(fieldInfo.FieldType); - fieldInfo.SetValue(instance, fieldValue); - } - else if (type.GetProperty(key) is PropertyInfo propertyInfo) - { - object? propertyValue = rootDeserializer(propertyInfo.PropertyType); - propertyInfo.SetValue(instance, propertyValue); - } - else - parser.SkipThisAndNestedEvents(); - } - - parser.TryConsume(out _); - - return instance; - } - - public void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer) - { - if (type.HasAttribute()) - { - emitter.Emit(new Scalar("")); - return; - } - - IEntity entity = (IEntity)value!; - if (!entitiesVisited.Add(entity)) - { - emitter.Emit(new Scalar(entity.Id)); - return; - } - - emitter.Emit(new MappingStart()); - serializer(new TypeContainer(value), typeof(TypeContainer)); - - TypeData typeData = Utils.GetTypeData(type); - - foreach (PropertyInfo propertyInfo in typeData.Properties) - { - if (propertyInfo.HasAttribute()) - continue; - - emitter.Emit(new Scalar(propertyInfo.Name)); - object? propertyValue = propertyInfo.GetValue(value); - - EmitValue(propertyValue, propertyInfo.PropertyType, emitter, serializer); - } - - foreach (FieldInfo fieldInfo in typeData.Fields) - { - if (fieldInfo.HasAttribute()) - continue; - - if (fieldInfo.HasAttribute()) - continue; - - // if (!fieldInfo.HasAttribute()) - // continue; - - emitter.Emit(new Scalar(fieldInfo.Name)); - object? fieldValue = fieldInfo.GetValue(value); - - EmitValue(fieldValue, fieldInfo.FieldType, emitter, serializer); - } - - emitter.Emit(new MappingEnd()); - } - - private static void EmitValue(object? value, Type declaredType, IEmitter emitter, ObjectSerializer serializer) - { - if (value is null) - { - emitter.Emit(new Scalar("")); - return; - } - - if (value is IEntity entity) - { - emitter.Emit(new Scalar(entity.Id)); - return; - } - - bool isSequence = Utils.IsEnumerable(declaredType); - - if (!isSequence) - { - serializer(value); - return; - } - - IEnumerable sequence = (IEnumerable)value; - - emitter.Emit(new SequenceStart(null, null, false, SequenceStyle.Block)); - foreach (object? item in sequence) - if (value is IEntity sequenceEntity) - emitter.Emit(new Scalar(sequenceEntity.Id)); - else - serializer(item); - emitter.Emit(new SequenceEnd()); - } -} diff --git a/Engine.Serialization/Converters/EntityFinder.cs b/Engine.Serialization/Converters/EntityFinder.cs deleted file mode 100644 index 4a173f4..0000000 --- a/Engine.Serialization/Converters/EntityFinder.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System.Collections; -using System.Reflection; - -using Syntriax.Engine.Core; - -namespace Syntriax.Engine.Serialization; - -public class EntityFinder -{ - private readonly Dictionary _entities = []; - - public IReadOnlyDictionary Entities => _entities; - - public void FindEntitiesUnder(object @object) - { - TypeData typeData = Utils.GetTypeData(@object.GetType()); - - if (@object is not IEntity entity) - { - if (@object is IEnumerable enumerable && @object.GetType() != typeof(string)) - foreach (object? listObject in enumerable) - FindEntitiesUnder(listObject); - return; - } - - if (Entities.ContainsKey(entity.Id)) - return; - - _entities.Add(entity.Id, entity); - - foreach (PropertyInfo propertyInfo in typeData.Properties) - { - if (propertyInfo.PropertyType?.IsPrimitive ?? true || propertyInfo.PropertyType == typeof(string)) - continue; - - if (propertyInfo.HasAttribute()) - continue; - - if (propertyInfo.GetValue(@object) is object propertyObject) - FindEntitiesUnder(propertyObject); - } - - foreach (FieldInfo fieldInfo in typeData.Fields) - { - if (fieldInfo.FieldType?.IsPrimitive ?? true || fieldInfo.FieldType == typeof(string)) - continue; - - if (fieldInfo.HasAttribute()) - continue; - - // if (!fieldInfo.HasAttribute()) - // continue; - - if (fieldInfo.GetValue(@object) is object fieldObject) - FindEntitiesUnder(fieldObject); - } - - FindEntitiesUnder(entity); - } -} diff --git a/Engine.Serialization/Converters/EntityReference.cs b/Engine.Serialization/Converters/EntityReference.cs deleted file mode 100644 index 97e85c2..0000000 --- a/Engine.Serialization/Converters/EntityReference.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Syntriax.Engine.Core; - -namespace Syntriax.Engine.Serialization; - -public class EntityReference -{ - public string Id { get; set; } = string.Empty; - public TypeContainer TypeContainer { get; set; } = new(); - - public EntityReference() { } - public EntityReference(IEntity entity) { TypeContainer = new(entity); Id = entity.Id; } -} diff --git a/Engine.Serialization/Converters/EntityReferenceConverter.cs b/Engine.Serialization/Converters/EntityReferenceConverter.cs deleted file mode 100644 index 96c01f4..0000000 --- a/Engine.Serialization/Converters/EntityReferenceConverter.cs +++ /dev/null @@ -1,36 +0,0 @@ -using YamlDotNet.Core; -using YamlDotNet.Core.Events; -using YamlDotNet.Serialization; - -namespace Syntriax.Engine.Serialization; - -// public class EntityReferenceConverter : IEngineTypeYamlConverter -// { -// public bool Accepts(Type type) => type == typeof(EntityReference); - -// public object? ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) -// { -// parser.Consume(); - -// if (parser.Consume().Value.CompareTo(nameof(EntityReference.Id)) != 0) -// throw new ArgumentException($"{nameof(EntityReference)} mapping must start with {nameof(EntityReference.Id)}"); -// string id = parser.Consume().Value; - -// TypeContainer typeContainer = (TypeContainer)rootDeserializer(typeof(TypeContainer))!; - -// parser.Consume(); - -// return new EntityReference() { Id = id, TypeContainer = typeContainer }; -// } - -// public void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer) -// { -// EntityReference? entityReference = (EntityReference)value!; - -// emitter.Emit(new MappingStart()); -// emitter.Emit(new Scalar(nameof(EntityReference.Id))); -// emitter.Emit(new Scalar(entityReference.Id)); -// serializer(entityReference.TypeContainer, typeof(TypeContainer)); -// emitter.Emit(new MappingEnd()); -// } -// } diff --git a/Engine.Serialization/Converters/TypeContainer.cs b/Engine.Serialization/Converters/TypeContainer.cs deleted file mode 100644 index 9511c88..0000000 --- a/Engine.Serialization/Converters/TypeContainer.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Syntriax.Engine.Serialization; - -public class TypeContainer -{ - public string Type { get; set; } = string.Empty; - - public TypeContainer() { } - public TypeContainer(Type type) { Type = type.FullName ?? string.Empty; } - public TypeContainer(object? value) { Type = value?.GetType().FullName ?? string.Empty; } -} diff --git a/Engine.Serialization/Converters/TypeContainerConverter.cs b/Engine.Serialization/Converters/TypeContainerConverter.cs deleted file mode 100644 index caf10e0..0000000 --- a/Engine.Serialization/Converters/TypeContainerConverter.cs +++ /dev/null @@ -1,27 +0,0 @@ -using YamlDotNet.Core; -using YamlDotNet.Core.Events; -using YamlDotNet.Serialization; - -namespace Syntriax.Engine.Serialization; - -public class TypeContainerConverter : IEngineTypeYamlConverter -{ - public bool Accepts(Type type) => type == typeof(TypeContainer); - - public object? ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) - { - if (parser.Consume().Value.CompareTo(nameof(TypeContainer.Type)) != 0) - throw new ArgumentException($"{nameof(TypeContainer)} mapping must start with {nameof(TypeContainer.Type)}"); - string typeFullName = parser.Consume().Value; - - return new TypeContainer() { Type = typeFullName }; - } - - public void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer) - { - TypeContainer? typeContainer = (TypeContainer)value!; - - emitter.Emit(new Scalar(nameof(TypeContainer.Type))); - emitter.Emit(new Scalar(typeContainer.Type)); - } -}