public virtual void Hc_traverse(IVisitor4 visitor) { if (_hcPreceding != null) { _hcPreceding.Hc_traverse(visitor); } if (_hcSubsequent != null) { _hcSubsequent.Hc_traverse(visitor); } // Traversing the leaves first allows to add ObjectReference // nodes to different ReferenceSystem trees during commit visitor.Visit(this); }