if (dest == null) System.out.println("Yup dest is null");
    private void generateSwitchCode(FlatNode fire, List dests)     {	assert !(layout.getIdentities().contains(fire));		//should only have one previous	HashMap prev = new HashMap();	HashMap next = new HashMap();	ListIterator destsIt = dests.listIterator();	while (destsIt.hasNext()) { 	    FlatNode dest = (FlatNode)destsIt.next();	    assert !(layout.getIdentities().contains(dest));	    //	    System.out.println("Dest: " + dest.getName());	    if (dest == null) 		System.out.println("Yup dest is null"); 	    RawTile[] hops =  		(RawTile[])layout.router.		getRoute(ssg, layout.getTile(fire), layout.getTile(dest)).toArray(new RawTile[0]);	    //add to fire's next	    if (!next.containsKey(layout.getTile(fire))) 		next.put(layout.getTile(fire), new HashSet());	    ((HashSet)next.get(layout.getTile(fire))).add(hops[1]);	    //add to all other previous, next	    for (int i = 1; i < hops.length -1; i++) {		if (prev.containsKey(hops[i]))		    if (prev.get(hops[i]) != hops[i-1])			Utils.fail("More than one previous tile for a single data item");		prev.put(hops[i], hops[i-1]);		if (!next.containsKey(hops[i]))		    next.put(hops[i], new HashSet());		((HashSet)next.get(hops[i])).add(hops[i+1]);	    }	    //add the last step, plus the dest to the dest map	    if (prev.containsKey(hops[hops.length - 1]))		if (prev.get(hops[hops.length - 1]) != hops[hops.length - 2])		    Utils.fail("More than one previous tile for a single data item (2)");	    prev.put(hops[hops.length-1], hops[hops.length - 2]);	    if (!next.containsKey(hops[hops.length-1]))		next.put(hops[hops.length - 1], new HashSet());	    ((HashSet)next.get(hops[hops.length - 1])).add(hops[hops.length -1]);	}		//create the appropriate amount of routing instructions	int elements = Util.getTypeSize(Util.getOutputType(fire));	for (int i = 0; i < elements; i++)	    asm(layout.getTile(fire), prev, next);    }