public override void Visit(CompositeBase element) { if (element.IsLeaf) { if (_items.ContainsKey(element.Name)) { throw new ApplicationException(string.Format("NodeNameValueVisitor duplicate name error adding {0}/{1}", element.ParentPath(), element.Name)); } _items.Add(element.Name, element.Value); } else { foreach (CompositeBase c in (Composite)element) { if (c.IsLeaf) { c.Accept(this); } } } }
/// <summary> /// Visits the specified element. /// </summary> /// <param name="element">The element.</param> public override void Visit(CompositeBase element) { if (element.IsLeaf) { // process this var name = element.ParentPath(); // we want the root node to be implicit // this is for CALL roots only should be // subclassed to the FnsDomain? if (name.StartsWith("CALL:")) { name = name.Remove(0, 5); } _collection.Add(name, element.Value); } else { foreach (CompositeBase c in (Composite)element) { c.Accept(this); } } }