code: public void initUpstream()
  	{
  		for (Conversion conv : getUpstreamConversions(pe.getParticipantOf()))
  		{
  			ConversionWrapper conW = (ConversionWrapper) graph.getGraphObject(conv);
  			if (conW == null) continue;
  
  			if (conv.getConversionDirection() == ConversionDirectionType.REVERSIBLE &&
  				conv.getLeft().contains(pe))
  			{
  				conW = conW.getReverse();
  			}
  			Edge edge = new EdgeL3(conW, this, graph);
  			conW.getDownstreamNoInit().add(edge);
  			this.getUpstreamNoInit().add(edge);
  		}
  
  		for (Interaction inter : pe.getParticipantOf())
  		{
  			if (inter instanceof TemplateReaction)
  			{
  				TemplateReaction tr = (TemplateReaction) inter;
  				TemplateReactionWrapper trw = (TemplateReactionWrapper) graph.getGraphObject(tr);
  				if (trw == null) continue;
  
  				Edge edge = new EdgeL3(trw, this, graph);
  
  				assert trw.getDownstreamNoInit() != null;
  
  				trw.getDownstreamNoInit().add(edge);
  				this.getUpstreamNoInit().add(edge);
  			}
  		}
  	}
docs: Binds to upstream interactions.