public void setInfo(TimetableInfo info, TimetableInfoFileProxy proxy) throws Exception { if (info.saveToFile()) { FileInfo fInfo = new FileInfo(); String defName = null; if (getDefinition() != null) { defName = getDefinition().getName(); } else { defName = info.getClass().getName(); if (defName.indexOf('.') >= 0) defName = defName.substring(defName.lastIndexOf('.') + 1); } fInfo.setName(defName + "_" + generateId() + ".zxml"); fInfo.saveInfo(info, proxy); info = fInfo; } Document document = DocumentHelper.createDocument(); Element root = document.addElement(info.getClass().getName()); info.save(root); setValue(document); setCached(getUniqueId(), info); }