Node node=new Node(self,work.getWork(self)); nodes.put(node,null); if(StatelessDuplicate.isFissable(self)) node.fissable=true; SIRContainer parent=self.getParent(); if(prevNode!=null) { prevNode.next=node; node.prev=prevNode; if(parent.equals(prevParent)) { Pair pair=new Pair(prevNode,node); pairs.put(pair,null);
if (FusePipe.isFusable(self)) { Node node=new Node(self,work.getWork(self)); nodes.put(node,null); if(StatelessDuplicate.isFissable(self)) node.fissable=true; SIRContainer parent=self.getParent(); if(prevNode!=null) { prevNode.next=node; node.prev=prevNode; if(parent.equals(prevParent)) { Pair pair=new Pair(prevNode,node); pairs.put(pair,null);
    private void buildNodesList() {	SIRIterator it = IterFactory.createFactory().createIter(str);	it.accept(new EmptyStreamVisitor() {		Node prevNode;		SIRContainer prevParent;				public void visitFilter(SIRFilter self,					SIRFilterIter iter) {		    Node node=new Node(self,work.getWork(self));		    nodes.put(node,null);		    if(StatelessDuplicate.isFissable(self))			node.fissable=true;		    SIRContainer parent=self.getParent();		    if(prevNode!=null) {			prevNode.next=node;			node.prev=prevNode;			if(parent.equals(prevParent)) {			    Pair pair=new Pair(prevNode,node);			    pairs.put(pair,null);			}		    }		    prevNode=node;		    prevParent=parent;		}	    });    }