using System.Linq; using System.Collections.Generic; using Microsoft.CodeAnalysis.VisualBasic.Syntax; using CTA.Rules.Models.Actions.VisualBasic; namespace CTA.Rules.Models.Tokens.VisualBasic { public class VisualBasicNodeToken : NodeToken { public VisualBasicNodeToken() { InvocationExpressionActions = new List>(); ImportActions = new List(); NamespaceActions = new List>(); IdentifierNameActions = new List>(); TypeBlockActions = new List(); MethodBlockActions = new List(); InterfaceBlockActions = new List(); VbAttributeListActions = new List(); AccessorBlockActions = new List(); ObjectCreationExpressionActions = new List(); ElementAccessActions = new List(); AttributeActions = new List(); } public List> InvocationExpressionActions { get; set; } public List ImportActions { get; set; } public List> NamespaceActions { get; set; } public List> IdentifierNameActions { get; set; } public List TypeBlockActions { get; set; } public List MethodBlockActions { get; set; } public List InterfaceBlockActions { get; set; } public List VbAttributeListActions { get; set; } public List AccessorBlockActions { get; set; } public List ObjectCreationExpressionActions{ get; set; } public List ElementAccessActions { get; set; } public List AttributeActions { get; set; } public override VisualBasicNodeToken Clone() { VisualBasicNodeToken cloned = (VisualBasicNodeToken)base.Clone(); cloned.InvocationExpressionActions = cloned.InvocationExpressionActions .Select(action => action.Clone>()).ToList(); cloned.ImportActions = cloned.ImportActions .Select(action => action.Clone()).ToList(); cloned.NamespaceActions = cloned.NamespaceActions .Select(action => action.Clone>()).ToList(); cloned.IdentifierNameActions = cloned.IdentifierNameActions .Select(action => action.Clone>()).ToList(); cloned.TypeBlockActions = cloned.TypeBlockActions .Select(action => action.Clone()).ToList(); cloned.MethodBlockActions = cloned.MethodBlockActions .Select(action => action.Clone()).ToList(); cloned.InterfaceBlockActions = cloned.InterfaceBlockActions .Select(action => action.Clone()).ToList(); cloned.VbAttributeListActions = cloned.VbAttributeListActions .Select(action => action.Clone()).ToList(); cloned.AccessorBlockActions = cloned.AccessorBlockActions .Select(action => action.Clone()).ToList(); cloned.ObjectCreationExpressionActions = cloned.ObjectCreationExpressionActions .Select(action => action.Clone()).ToList(); cloned.ElementAccessActions = cloned.ElementAccessActions .Select(action => action.Clone()).ToList(); cloned.AttributeActions = cloned.AttributeActions .Select(action => action.Clone()).ToList(); return cloned; } public override List AllActions { get { var allActions = new List(); allActions.AddRange(InvocationExpressionActions); allActions.AddRange(NamespaceActions); allActions.AddRange(ImportActions); allActions.AddRange(IdentifierNameActions); allActions.AddRange(TypeBlockActions); allActions.AddRange(MethodBlockActions); allActions.AddRange(InterfaceBlockActions); allActions.AddRange(VbAttributeListActions); allActions.AddRange(AccessorBlockActions); allActions.AddRange(ObjectCreationExpressionActions); allActions.AddRange(ElementAccessActions); allActions.AddRange(AttributeActions); allActions.AddRange(base.AllActions); return allActions; } } } }