private void writeGraph(XMLStreamWriter xmlWriter, HierarchicalGraph graph) throws Exception { xmlWriter.writeStartElement(GRAPH); xmlWriter.writeAttribute( GRAPH_DEFAULT_EDGETYPE, graph instanceof DirectedGraph ? "directed" : graph instanceof UndirectedGraph ? "undirected" : "mixed"); if (exportDynamic) { if (!Double.isInfinite(visibleInterval.getLow())) { String intervalLow = formatTime(visibleInterval.getLow()); xmlWriter.writeAttribute(GRAPH_START, intervalLow); } if (!Double.isInfinite(visibleInterval.getHigh())) { String intervalHigh = formatTime(visibleInterval.getHigh()); xmlWriter.writeAttribute(GRAPH_END, intervalHigh); } String timeFormat = dynamicModel.getTimeFormat().equals(DynamicModel.TimeFormat.DATE) ? "date" : "double"; xmlWriter.writeAttribute(GRAPH_TIMEFORMAT, timeFormat); } xmlWriter.writeAttribute(GRAPH_MODE, exportDynamic ? "dynamic" : "static"); writeAttributes(xmlWriter, attributeModel.getNodeTable()); writeAttributes(xmlWriter, attributeModel.getEdgeTable()); writeNodes(xmlWriter, graph); writeEdges(xmlWriter, graph); xmlWriter.writeEndElement(); }
private String formatTime(double time) { if (dynamicModel.getTimeFormat().equals(DynamicModel.TimeFormat.DATE)) { String t = DynamicUtilities.getXMLDateStringFromDouble(time); if (t.endsWith("T00:00:00.000")) { t = t.substring(0, t.length() - 13); } return t; } else { return Double.toString(time); } }