Exemplo n.º 1
0
        public override void Visit(DocumentObject documentObject)
        {
            IVisitable visitable = documentObject as IVisitable;

            if (visitable != null)
            {
                visitable.AcceptVisitor(this, true);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Allows the visitor object to visit the document object and its child objects.
        /// </summary>
        void IVisitable.AcceptVisitor(DocumentObjectVisitor visitor, bool visitChildren)
        {
            visitor.VisitDocumentObjectCollection(this);

            foreach (DocumentObject docobj in this)
            {
                IVisitable visitable = docobj as IVisitable;
                if (visitable != null)
                {
                    visitable.AcceptVisitor(visitor, visitChildren);
                }
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Wraps and accepts the specified visitor.
 /// </summary>
 /// <param name="subject">The subject.</param>
 /// <param name="visitor">The visitor.</param>
 /// <returns>
 /// <c>true</c> if the subject was visited; <c>false</c> otherwise.
 /// </returns>
 public static bool AcceptVisitor(this IVisitable subject,
                                  object visitor) => subject.AcceptVisitor(new Visitor(visitor));