internal static void AddLeaf(Node[] nodes, Type type) { var commands = new List <Command>(); foreach (var node in nodes) { var requiredTypes = CoreUtil.GetRequiredTypes(type); foreach (var requiredType in requiredTypes) { if (node.GetLeaf(requiredType) == null) { commands.Add(new NodeAddLeafCommand(node, (Leaf)Activator.CreateInstance(requiredType))); } } commands.Add(new NodeAddLeafCommand(node, (Leaf)Activator.CreateInstance(type))); } Command.Execute(new CombinedCommand(commands.ToArray())); }