in src/CTA.Rules.Analysis/RulesAnalysis.cs [584:636]
private void AddNamedActions(FileActions fileAction, NodeToken token, string identifier, TextSpan textSpan)
{
fileAction.ClassDeclarationActions.UnionWith(token.ClassDeclarationActions
.Select(c => new ClassDeclarationAction()
{
Key = identifier,
Value = c.Value,
Description = c.Description,
Name = c.Name,
Type = c.Type,
TextSpan = textSpan,
ActionValidation = c.ActionValidation,
ClassDeclarationActionFunc = c.ClassDeclarationActionFunc
}));
fileAction.InterfaceDeclarationActions.UnionWith(token.InterfaceDeclarationActions
.Select(c => new InterfaceDeclarationAction()
{
Key = identifier,
Value = c.Value,
Name = c.Name,
Type = c.Type,
Description = c.Description,
TextSpan = textSpan,
ActionValidation = c.ActionValidation,
InterfaceDeclarationActionFunc = c.InterfaceDeclarationActionFunc
}));
fileAction.MethodDeclarationActions.UnionWith(token.MethodDeclarationActions
.Select(c => new MethodDeclarationAction()
{
Key = identifier,
Value = c.Value,
Description = c.Description,
Name = c.Name,
Type = c.Type,
TextSpan = textSpan,
ActionValidation = c.ActionValidation,
MethodDeclarationActionFunc = c.MethodDeclarationActionFunc
}));
if (fileAction.ClassDeclarationActions.Any() || fileAction.InterfaceDeclarationActions.Any() || fileAction.MethodDeclarationActions.Any() || fileAction.ObjectCreationExpressionActions.Any())
{
var nodeToken = token.Clone();
nodeToken.TextSpan = textSpan;
nodeToken.AllActions.ForEach(action =>
{
action.Key = identifier;
});
fileAction.NodeTokens.Add(nodeToken);
}
}