Fix rename failure reason handling
This commit is contained in:
parent
2ea961ee5b
commit
ba71021665
@ -14,8 +14,16 @@ public enum EFailureReason
|
|||||||
HasAttribute,
|
HasAttribute,
|
||||||
IsAttribute,
|
IsAttribute,
|
||||||
Constructor,
|
Constructor,
|
||||||
HasMethods,
|
MethodsInclude,
|
||||||
HasFields,
|
MethodsExclude,
|
||||||
HasProperties,
|
MethodsCount,
|
||||||
HasNestedTypes,
|
FieldsInclude,
|
||||||
|
FieldsExclude,
|
||||||
|
FieldsCount,
|
||||||
|
PropertiesInclude,
|
||||||
|
PropertiesExclude,
|
||||||
|
PropertiesCount,
|
||||||
|
NestedTypeInclude,
|
||||||
|
NestedTypeExclude,
|
||||||
|
NestedTypeCount,
|
||||||
}
|
}
|
@ -31,7 +31,7 @@ public class Remapper
|
|||||||
{
|
{
|
||||||
Logger.Log($"Finding best match for {remap.NewTypeName}...", ConsoleColor.Gray);
|
Logger.Log($"Finding best match for {remap.NewTypeName}...", ConsoleColor.Gray);
|
||||||
|
|
||||||
HandleMapping(remap);
|
ScoreMapping(remap);
|
||||||
}
|
}
|
||||||
|
|
||||||
ChooseBestMatches();
|
ChooseBestMatches();
|
||||||
@ -74,11 +74,11 @@ public class Remapper
|
|||||||
/// Loop over all types in the assembly and score them
|
/// Loop over all types in the assembly and score them
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="mapping">Mapping to score</param>
|
/// <param name="mapping">Mapping to score</param>
|
||||||
private void HandleMapping(RemapModel mapping)
|
public void ScoreMapping(RemapModel mapping)
|
||||||
{
|
{
|
||||||
foreach (var type in DataProvider.ModuleDefinition.Types)
|
foreach (var type in DataProvider.ModuleDefinition.Types)
|
||||||
{
|
{
|
||||||
var _ = FindMatch(type, mapping);
|
FindMatch(type, mapping);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,13 +89,13 @@ public class Remapper
|
|||||||
/// <param name="remap">Remap to check against</param>
|
/// <param name="remap">Remap to check against</param>
|
||||||
/// <param name="parentTypeName"></param>
|
/// <param name="parentTypeName"></param>
|
||||||
/// <returns>EMatchResult</returns>
|
/// <returns>EMatchResult</returns>
|
||||||
private EMatchResult FindMatch(TypeDefinition type, RemapModel remap)
|
private void FindMatch(TypeDefinition type, RemapModel remap)
|
||||||
{
|
{
|
||||||
// Handle Direct Remaps by strict naming first bypasses everything else
|
// Handle Direct Remaps by strict naming first bypasses everything else
|
||||||
if (remap.UseForceRename)
|
if (remap.UseForceRename)
|
||||||
{
|
{
|
||||||
HandleByDirectName(type, remap);
|
HandleByDirectName(type, remap);
|
||||||
return EMatchResult.HandleDirect;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var nestedType in type.NestedTypes)
|
foreach (var nestedType in type.NestedTypes)
|
||||||
@ -132,7 +132,8 @@ public class Remapper
|
|||||||
|
|
||||||
if (NoMatch == EMatchResult.NoMatch)
|
if (NoMatch == EMatchResult.NoMatch)
|
||||||
{
|
{
|
||||||
return NoMatch;
|
remap.FailureReason = score.FailureReason;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var match = matches.Where(x => x.Equals(EMatchResult.Match)).Any();
|
var match = matches.Where(x => x.Equals(EMatchResult.Match)).Any();
|
||||||
@ -145,10 +146,7 @@ public class Remapper
|
|||||||
remap.Succeeded = true;
|
remap.Succeeded = true;
|
||||||
remap.FailureReason = EFailureReason.None;
|
remap.FailureReason = EFailureReason.None;
|
||||||
score.AddScoreToResult();
|
score.AddScoreToResult();
|
||||||
return EMatchResult.Match;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return EMatchResult.Disabled;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleByDirectName(TypeDefinition type, RemapModel remap)
|
private void HandleByDirectName(TypeDefinition type, RemapModel remap)
|
||||||
|
@ -20,9 +20,10 @@ internal static class Fields
|
|||||||
|
|
||||||
var matches = type.Fields
|
var matches = type.Fields
|
||||||
.Where(field => parms.IncludeFields.Contains(field.Name));
|
.Where(field => parms.IncludeFields.Contains(field.Name));
|
||||||
|
|
||||||
score.Score += matches.Count();
|
score.Score += matches.Count();
|
||||||
|
|
||||||
|
score.FailureReason = matches.Any() ? EFailureReason.None : EFailureReason.FieldsInclude;
|
||||||
|
|
||||||
return matches.Any()
|
return matches.Any()
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
@ -45,6 +46,8 @@ internal static class Fields
|
|||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.FieldsExclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.NoMatch
|
? EMatchResult.NoMatch
|
||||||
: EMatchResult.Match;
|
: EMatchResult.Match;
|
||||||
@ -65,6 +68,8 @@ internal static class Fields
|
|||||||
|
|
||||||
if (match) { score.Score++; }
|
if (match) { score.Score++; }
|
||||||
|
|
||||||
|
score.FailureReason = match ? EFailureReason.None : EFailureReason.FieldsCount;
|
||||||
|
|
||||||
return match
|
return match
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
|
@ -24,6 +24,8 @@ internal static class Methods
|
|||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.MethodsInclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
@ -46,6 +48,8 @@ internal static class Methods
|
|||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.MethodsExclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.NoMatch
|
? EMatchResult.NoMatch
|
||||||
: EMatchResult.Match;
|
: EMatchResult.Match;
|
||||||
@ -67,6 +71,8 @@ internal static class Methods
|
|||||||
|
|
||||||
if (match) { score.Score++; }
|
if (match) { score.Score++; }
|
||||||
|
|
||||||
|
score.FailureReason = match ? EFailureReason.None : EFailureReason.MethodsCount;
|
||||||
|
|
||||||
return match
|
return match
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
|
@ -14,9 +14,10 @@ internal class NestedTypes
|
|||||||
var matches = type.NestedTypes
|
var matches = type.NestedTypes
|
||||||
.Where(nt => parms.IncludeNestedTypes.Contains(nt.Name))
|
.Where(nt => parms.IncludeNestedTypes.Contains(nt.Name))
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.NestedTypeInclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
@ -32,6 +33,8 @@ internal class NestedTypes
|
|||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.NestedTypeExclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.NoMatch
|
? EMatchResult.NoMatch
|
||||||
: EMatchResult.Match;
|
: EMatchResult.Match;
|
||||||
@ -45,6 +48,8 @@ internal class NestedTypes
|
|||||||
|
|
||||||
if (match) { score.Score++; }
|
if (match) { score.Score++; }
|
||||||
|
|
||||||
|
score.FailureReason = match ? EFailureReason.None : EFailureReason.NestedTypeCount;
|
||||||
|
|
||||||
return match
|
return match
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
|
@ -14,9 +14,10 @@ namespace AssemblyRemapper.Remapper.Search
|
|||||||
var matches = type.Properties
|
var matches = type.Properties
|
||||||
.Where(property => parms.IncludeProperties.Contains(property.Name))
|
.Where(property => parms.IncludeProperties.Contains(property.Name))
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.PropertiesInclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
@ -32,6 +33,8 @@ namespace AssemblyRemapper.Remapper.Search
|
|||||||
|
|
||||||
score.Score += matches;
|
score.Score += matches;
|
||||||
|
|
||||||
|
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.PropertiesExclude;
|
||||||
|
|
||||||
return matches > 0
|
return matches > 0
|
||||||
? EMatchResult.NoMatch
|
? EMatchResult.NoMatch
|
||||||
: EMatchResult.Match;
|
: EMatchResult.Match;
|
||||||
@ -45,6 +48,8 @@ namespace AssemblyRemapper.Remapper.Search
|
|||||||
|
|
||||||
if (match) { score.Score++; }
|
if (match) { score.Score++; }
|
||||||
|
|
||||||
|
score.FailureReason = match ? EFailureReason.None : EFailureReason.PropertiesCount;
|
||||||
|
|
||||||
return match
|
return match
|
||||||
? EMatchResult.Match
|
? EMatchResult.Match
|
||||||
: EMatchResult.NoMatch;
|
: EMatchResult.NoMatch;
|
||||||
|
@ -18,6 +18,7 @@ internal static class TypeDefExtensions
|
|||||||
// Interfaces cannot be abstract, and abstract cannot be static
|
// Interfaces cannot be abstract, and abstract cannot be static
|
||||||
if (type.IsInterface || type.GetStaticConstructor() is not null)
|
if (type.IsInterface || type.GetStaticConstructor() is not null)
|
||||||
{
|
{
|
||||||
|
score.FailureReason = EFailureReason.IsAbstract;
|
||||||
return EMatchResult.NoMatch;
|
return EMatchResult.NoMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,6 +59,9 @@ internal static class TypeDefExtensions
|
|||||||
if (type.IsNested == parms.IsNested)
|
if (type.IsNested == parms.IsNested)
|
||||||
{
|
{
|
||||||
score.Score++;
|
score.Score++;
|
||||||
|
Logger.Log($"Match {type.Name}");
|
||||||
|
Logger.Log($"Match {parms.IsNested}");
|
||||||
|
Logger.Log($"type: {type.IsNested} \n");
|
||||||
return EMatchResult.Match;
|
return EMatchResult.Match;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,6 +106,7 @@ internal static class TypeDefExtensions
|
|||||||
|
|
||||||
if (type.BaseType?.Name == parms.IgnoreBaseClass)
|
if (type.BaseType?.Name == parms.IgnoreBaseClass)
|
||||||
{
|
{
|
||||||
|
score.FailureReason = EFailureReason.IsDerived;
|
||||||
return EMatchResult.NoMatch;
|
return EMatchResult.NoMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ namespace AssemblyRemapperGUI
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap));
|
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap, this));
|
||||||
DataProvider.Remaps.Add(remap);
|
DataProvider.Remaps.Add(remap);
|
||||||
ResetAll();
|
ResetAll();
|
||||||
}
|
}
|
||||||
@ -99,6 +99,8 @@ namespace AssemblyRemapperGUI
|
|||||||
{
|
{
|
||||||
if (Remapper.IsRunning) { return; }
|
if (Remapper.IsRunning) { return; }
|
||||||
|
|
||||||
|
Console.Clear();
|
||||||
|
|
||||||
Remapper.InitializeRemap();
|
Remapper.InitializeRemap();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +137,7 @@ namespace AssemblyRemapperGUI
|
|||||||
|
|
||||||
foreach (var remap in DataProvider.Remaps)
|
foreach (var remap in DataProvider.Remaps)
|
||||||
{
|
{
|
||||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap));
|
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap, this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,7 +350,7 @@ namespace AssemblyRemapperGUI
|
|||||||
|
|
||||||
foreach (var remap in DataProvider.Remaps)
|
foreach (var remap in DataProvider.Remaps)
|
||||||
{
|
{
|
||||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap));
|
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap, this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using AssemblyRemapper.Models;
|
using AssemblyRemapper.Models;
|
||||||
|
using AssemblyRemapperGUI;
|
||||||
|
|
||||||
namespace RemapperGUI.Utils;
|
namespace RemapperGUI.Utils;
|
||||||
|
|
||||||
@ -59,7 +60,7 @@ internal static class GUI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="model"></param>
|
/// <param name="model"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static TreeNode GenerateTreeNode(RemapModel model)
|
public static TreeNode GenerateTreeNode(RemapModel model, AssemblyToolGUI gui)
|
||||||
{
|
{
|
||||||
var isPublic = model.SearchParams.IsPublic == null ? null : model.SearchParams.IsPublic;
|
var isPublic = model.SearchParams.IsPublic == null ? null : model.SearchParams.IsPublic;
|
||||||
var isAbstract = model.SearchParams.IsAbstract == null ? null : model.SearchParams.IsAbstract;
|
var isAbstract = model.SearchParams.IsAbstract == null ? null : model.SearchParams.IsAbstract;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user