Fix collection naming
This commit is contained in:
parent
ab4cee9646
commit
d123e616df
@ -13,6 +13,9 @@ public class ReCodeItAutoMapper
|
|||||||
|
|
||||||
private static AutoMapperSettings Settings => DataProvider.Settings.AutoMapper;
|
private static AutoMapperSettings Settings => DataProvider.Settings.AutoMapper;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start the automapping process
|
||||||
|
/// </summary>
|
||||||
public void InitializeAutoMapping()
|
public void InitializeAutoMapping()
|
||||||
{
|
{
|
||||||
Logger.ClearLog();
|
Logger.ClearLog();
|
||||||
@ -39,6 +42,10 @@ public class ReCodeItAutoMapper
|
|||||||
WriteChanges();
|
WriteChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Finds any compiler generated code so we can ignore it, its mostly LINQ garbage
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="types"></param>
|
||||||
private void FindCompilerGeneratedObjects(Mono.Collections.Generic.Collection<TypeDefinition> types)
|
private void FindCompilerGeneratedObjects(Mono.Collections.Generic.Collection<TypeDefinition> types)
|
||||||
{
|
{
|
||||||
foreach (var typeDefinition in types)
|
foreach (var typeDefinition in types)
|
||||||
@ -101,7 +108,8 @@ public class ReCodeItAutoMapper
|
|||||||
field.FieldType,
|
field.FieldType,
|
||||||
field.Name,
|
field.Name,
|
||||||
field.FieldType.Name.Contains("Interface"),
|
field.FieldType.Name.Contains("Interface"),
|
||||||
field.FieldType.Name.Contains("Struct")));
|
field.FieldType.Name.Contains("Struct"),
|
||||||
|
field.FieldType.IsGenericInstance || field.FieldType.IsArray));
|
||||||
}
|
}
|
||||||
|
|
||||||
return fieldsWithTypes;
|
return fieldsWithTypes;
|
||||||
@ -195,6 +203,9 @@ public class ReCodeItAutoMapper
|
|||||||
MappingPairs = [.. mappingPairs];
|
MappingPairs = [.. mappingPairs];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sanitizes and prepares mapping pairs for remapping once filtering is complete.
|
||||||
|
/// </summary>
|
||||||
private void SanitizeProposedNames()
|
private void SanitizeProposedNames()
|
||||||
{
|
{
|
||||||
foreach (var pair in MappingPairs)
|
foreach (var pair in MappingPairs)
|
||||||
@ -219,6 +230,15 @@ public class ReCodeItAutoMapper
|
|||||||
pair.Name = string.Concat("I", pair.Name.AsSpan(0));
|
pair.Name = string.Concat("I", pair.Name.AsSpan(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Try and remove any trailing 's' that exist
|
||||||
|
if (pair.WasCollection)
|
||||||
|
{
|
||||||
|
if (pair.Name.ToLower().EndsWith('s'))
|
||||||
|
{
|
||||||
|
pair.Name = pair.Name.Substring(0, pair.Name.Length - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If its not an interface, its a struct or class
|
// If its not an interface, its a struct or class
|
||||||
switch (pair.IsStruct)
|
switch (pair.IsStruct)
|
||||||
{
|
{
|
||||||
@ -234,6 +254,7 @@ public class ReCodeItAutoMapper
|
|||||||
Logger.Log($"------------------------------------------------------------------------");
|
Logger.Log($"------------------------------------------------------------------------");
|
||||||
Logger.Log($"Original Name: {pair.OriginalName} : Sanitized Name: {pair.Name}");
|
Logger.Log($"Original Name: {pair.OriginalName} : Sanitized Name: {pair.Name}");
|
||||||
Logger.Log($"Matched From Name: {pair.OriginalPropOrFieldName}");
|
Logger.Log($"Matched From Name: {pair.OriginalPropOrFieldName}");
|
||||||
|
Logger.Log($"Matched From Collection: {pair.WasCollection}");
|
||||||
Logger.Log($"IsInterface: {pair.IsInterface}");
|
Logger.Log($"IsInterface: {pair.IsInterface}");
|
||||||
Logger.Log($"IsStruct: {pair.IsStruct}");
|
Logger.Log($"IsStruct: {pair.IsStruct}");
|
||||||
Logger.Log($"------------------------------------------------------------------------");
|
Logger.Log($"------------------------------------------------------------------------");
|
||||||
@ -246,14 +267,26 @@ public class ReCodeItAutoMapper
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
private sealed class MappingPair(TypeReference type, string name, bool isInterface = false, bool isStruct = false)
|
/// <summary>
|
||||||
|
/// Represents a match of a field name to obfuscated class
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
/// <param name="name"></param>
|
||||||
|
/// <param name="isInterface"></param>
|
||||||
|
/// <param name="isStruct"></param>
|
||||||
|
private sealed class MappingPair(
|
||||||
|
TypeReference type,
|
||||||
|
string name,
|
||||||
|
bool isInterface = false,
|
||||||
|
bool isStruct = false,
|
||||||
|
bool wasCollection = false)
|
||||||
{
|
{
|
||||||
public TypeReference TypeRef { get; set; } = type;
|
public TypeReference TypeRef { get; set; } = type;
|
||||||
public string OriginalName { get; set; } = type.FullName;
|
public string OriginalName { get; set; } = type.FullName;
|
||||||
public bool IsInterface { get; set; } = isInterface;
|
public bool IsInterface { get; set; } = isInterface;
|
||||||
public bool IsStruct { get; set; } = isStruct;
|
public bool IsStruct { get; set; } = isStruct;
|
||||||
|
public bool WasCollection { get; set; } = wasCollection;
|
||||||
public string Name { get; set; } = name;
|
public string Name { get; set; } = name;
|
||||||
|
|
||||||
public string OriginalPropOrFieldName { get; } = name;
|
public string OriginalPropOrFieldName { get; } = name;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user