public void Execute() { Debug.Assert(infos == null); if (infos != null) { throw new InvalidOperationException(); } nodes.Delete(); infos = new ModelInfo[nodes.Count]; for (int i = 0; i < infos.Length; i++) { var nsNode = nodes.Nodes[i]; var info = new ModelInfo(); infos[i] = info; info.Namespaces = new UTF8String[nsNode.TreeNode.Children.Count]; info.TypeNodes = new DeletableNodes <TypeNode>(nsNode.TreeNode.DataChildren.Cast <TypeNode>()); info.TypeNodes.Delete(); for (int j = 0; j < info.Namespaces.Length; j++) { var typeNode = info.TypeNodes.Nodes[j]; info.Namespaces[j] = typeNode.TypeDef.Namespace; typeNode.TypeDef.Namespace = UTF8String.Empty; nsTarget.TreeNode.Children.Add(typeNode.TreeNode); } } foreach (var info in typeRefInfos) { info.TypeRef.Namespace = UTF8String.Empty; } }
public void Execute() { nodes.Delete(); modelNodes.Delete(nodes.Nodes); }