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;
 }