public void GenerateCode()
        {
            TreeIter iter;

            if (!store.GetIterFirst(out iter))
            {
                return;
            }
            List <IBaseMember> includedMembers = new List <IBaseMember> ();

            do
            {
                bool include = (bool)store.GetValue(iter, 0);
                if (include)
                {
                    includedMembers.Add((IBaseMember)store.GetValue(iter, 3));
                }
            } while (store.IterNext(ref iter));

            INRefactoryASTProvider astProvider = options.GetASTProvider();

            if (astProvider == null)
            {
                return;
            }
            StringBuilder output = new StringBuilder();
            string        indent = RefactoringOptions.GetIndent(options.Document, options.EnclosingMember != null ? options.EnclosingMember : options.EnclosingType) + "\t";

            foreach (string nodeText in GenerateCode(astProvider, indent, includedMembers))
            {
                if (output.Length > 0)
                {
                    output.AppendLine();
                    output.AppendLine();
                }
                output.Append(nodeText);
            }

            if (output.Length > 0)
            {
                var data   = options.Document.TextEditorData;
                int offset = data.Caret.Offset - indent.Length;
                data.Replace(offset, indent.Length, output.ToString());
                data.Caret.Offset = offset + output.Length;
            }
        }