}
if (fromSourceToNewRed == null)
{
fromSourceToNewRed = new DirectedSparseEdge(source,newRed);
fromSourceToNewRed.setUserDatum(JUConstants.LABEL, existingLabels, UserData.CLONE);// no need to clone this one since I'll delete the edge in a bit
g.addEdge(fromSourceToNewRed);
}
else
// there is already a transition from source to newRed, hence all we have to do is merge the new labels into it.
((Collection<String>)fromSourceToNewRed.getUserDatum(JUConstants.LABEL)).addAll( existingLabels );