public TransducerGraph(Edu.Stanford.Nlp.Fsm.TransducerGraph other, TransducerGraph.INodeProcessor nodeProcessor) : this(other.GetArcs(), other.GetStartNode(), other.GetEndNodes(), null, nodeProcessor) { }
public TransducerGraph(ICollection <TransducerGraph.Arc> newArcs, object startNode, ISet endNodes, TransducerGraph.IArcProcessor arcProcessor, TransducerGraph.INodeProcessor nodeProcessor) : this() { TransducerGraph.IArcProcessor arcProcessor2 = null; if (nodeProcessor != null) { arcProcessor2 = new TransducerGraph.NodeProcessorWrappingArcProcessor(nodeProcessor); } foreach (TransducerGraph.Arc a in newArcs) { a = new TransducerGraph.Arc(a); // make a copy if (arcProcessor != null) { a = arcProcessor.ProcessArc(a); } if (arcProcessor2 != null) { a = arcProcessor2.ProcessArc(a); } AddArc(a); } if (nodeProcessor != null) { this.startNode = nodeProcessor.ProcessNode(startNode); } else { this.startNode = startNode; } if (nodeProcessor != null) { if (endNodes != null) { foreach (object o in endNodes) { this.endNodes.Add(nodeProcessor.ProcessNode(o)); } } } else { if (endNodes != null) { Sharpen.Collections.AddAll(this.endNodes, endNodes); } } }
public NodeProcessorWrappingArcProcessor(TransducerGraph.INodeProcessor nodeProcessor) { this.nodeProcessor = nodeProcessor; }