//------------------------------------------------- public GenericConvertingVisitor(GenericNode <S> SourceRoot_in, GenericNodeConverter <S, T> NodeConverter_in) { this.SourceRoot = SourceRoot_in; this.NodeConverter = NodeConverter_in; this.TargetRoot = null; this._LastNode = null; }
//------------------------------------------------- public GenericSynchronizedNode(GenericNode <T> SourceNode_in, GenericNodeConverter <T, S> Converter) { this._SourceNode = SourceNode_in; this._NodeConverter = Converter; GenericConvertingVisitor <T, S> visitor = new GenericConvertingVisitor <T, S>(this._SourceNode, this._NodeConverter); this.Key = this._SourceNode.Key; this._NodeConverter.Convert(this._SourceNode, this); this._SourceNode.VisitDecendentsDepthFirst(visitor); this.SetPrevNode(visitor.TargetRoot.PrevNode); this.SetNextNode(visitor.TargetRoot.NextNode); this._SourceNode.Listener = this; return; }