} // Reset

        protected override void DoVisitGroup(IRtfGroup group)
        {
            switch (group.Destination)
            {
            case RtfSpec.TagUserProperties:
                VisitGroupChildren(group);
                break;

            case null:
                Reset();
                VisitGroupChildren(group);
                _collectedProperties.Add(CreateProperty());
                break;

            case RtfSpec.TagUserPropertyName:
                _textBuilder.Reset();
                _textBuilder.VisitGroup(group);
                _propertyName = _textBuilder.CombinedText;
                break;

            case RtfSpec.TagUserPropertyValue:
                _textBuilder.Reset();
                _textBuilder.VisitGroup(group);
                _staticValue = _textBuilder.CombinedText;
                break;

            case RtfSpec.TagUserPropertyLink:
                _textBuilder.Reset();
                _textBuilder.VisitGroup(group);
                _linkValue = _textBuilder.CombinedText;
                break;
            }
        } // DoVisitGroup
        } // DoVisitTag

        private string ExtractGroupText(IRtfGroup group)
        {
            _textBuilder.Reset();
            _textBuilder.VisitGroup(group);
            return(_textBuilder.CombinedText);
        } // ExtractGroupText