code: public void addVirtualPartitionNode(Integer originalId, Integer virtualId, StreamPartitioner<?> partitioner) {
  
  		if (virtualPartitionNodes.containsKey(virtualId)) {
  			throw new IllegalStateException("Already has virtual partition node with id " + virtualId);
  		}
  
  		virtualPartitionNodes.put(virtualId,
  				new Tuple2<Integer, StreamPartitioner<?>>(originalId, partitioner));
  	}
docs: Adds a new virtual node that is used to connect a downstream vertex to an input with a
  certain partitioning.
  
  <p>When adding an edge from the virtual node to a downstream node the connection will be made
  to the original node, but with the partitioning given here.
  
  @param originalId ID of the node that should be connected to.
  @param virtualId ID of the virtual node.
  @param partitioner The partitioner