result.deleteCharAt(result.length() - 1);
if (result.length() > 0) result.deleteCharAt(result.length() - 1);
	public String getCycleString() {		// find cycles		IElementSet[] nodes = (IElementSet[]) elementSets.values().toArray(new IElementSet[elementSets.size()]);		ArrayList dependencies = new ArrayList();		for (int i = 0; i < nodes.length; i++) {			for (Iterator required = nodes[i].getRequiring().iterator();required.hasNext();)				dependencies.add(new Object[] {nodes[i],required.next()});		}				Object[][] cycles = ComputeNodeOrder.computeNodeOrder(nodes,(Object[][])dependencies.toArray(new Object[dependencies.size()][]));		StringBuffer result = new StringBuffer();		for (int i = 0; i < cycles.length; i++) {			result.append("{");			for (int j = 0; j < cycles[i].length; j++) {				result.append(((IElementSet)cycles[i][j]).getId());				result.append(",");			}			result.deleteCharAt(result.length() - 1);			result.append("},");		}		result.deleteCharAt(result.length() - 1);		return result.toString();	}		