Esempio n. 1
0
 public static void Visit(DomObject obj, IDomNodeVisitor visitor)
 {
     if (obj == null)
     {
         throw new ArgumentNullException(nameof(obj));
     }
     if (visitor == null)
     {
         throw new ArgumentNullException(nameof(visitor));
     }
     DomNodeVisitDispatcher.Create(visitor).Dispatch(obj);
 }
Esempio n. 2
0
        public static void VisitAll(IEnumerable <DomObject> objs, IDomNodeVisitor visitor)
        {
            if (objs == null || visitor == null)
            {
                return;
            }
            var d = DomNodeVisitDispatcher.Create(visitor);

            foreach (var obj in objs)
            {
                d.Dispatch(obj);
            }
        }
Esempio n. 3
0
        public static IDomNodeVisitDispatcher Create(IDomNodeVisitor visitor)
        {
            if (visitor is IDomNodeVisitDispatcher d)
            {
                return(d);
            }
            var result = new DomNodeVisitDispatcher(visitor);

            if (result.DispatchCache.IsEmpty)
            {
                return(new FastDispatcher(visitor));
            }
            return(result);
        }