code: @Override
  	public Collection<BioPAXElement> generate(Match match, int... ind)
  	{
  		Collection<BioPAXElement> result = new HashSet<BioPAXElement>();
  
  		PhysicalEntity pe = (PhysicalEntity) match.get(ind[0]);
  
  		for (Interaction inter : pe.getParticipantOf())
  		{
  			if (inter instanceof Conversion)
  			{
  				Conversion cnv = (Conversion) inter;
  				ConversionDirectionType dir = getDirection(cnv);
  
  				// do not get blacklisted small molecules
  				if (blacklist != null && blacklist.isUbique(pe, cnv, dir, type)) continue;
  
  				if (dir == ConversionDirectionType.REVERSIBLE)
  				{
  					result.add(cnv);
  				}
  				else if (dir == ConversionDirectionType.RIGHT_TO_LEFT &&
  					(type == RelType.INPUT ? cnv.getRight().contains(pe) : cnv.getLeft().contains(pe)))
  				{
  					result.add(cnv);
  				}
  				// Note that null direction is treated as if LEFT_TO_RIGHT. This is not a best
  				// practice, but it is a good approximation.
  				else if ((dir == ConversionDirectionType.LEFT_TO_RIGHT || dir == null) &&
  					(type == RelType.INPUT ? cnv.getLeft().contains(pe) : cnv.getRight().contains(pe)))
  				{
  					result.add(cnv);
  				}
  			}
  		}
  
  		return result;
  	}
docs: Identifies the conversion direction and gets the related participants.
  @param match current pattern match
  @param ind mapped indices
  @return input or output participants